JAV) 0407-2 익명클래스

조한미르·2024년 4월 7일
0
  • 익명 클래스란?

    • 이름이 없는 클래스

    • 선언후 마지막 세미클론

    • 일회용

    • 내부 기능 override 구현

    • 내부 클래스의 지약클래스의 제한 기능을 동일 적용

      익명클래스는 다른 내부클래스와는 달리 이름이 없는 클래스를 의미합니다.
      익명클래스의 선언과 객체의 생성을 동시에 하므로 단 한 번만 사용 할 수 있고
      오직 하나의 객체만을 생성 할 수 있는 일회용 클래스이다.

실습1)

  • Person
public class Person {
    public void introduce() {
        System.out.println("나는 사람입니다.");
    }
}
  • Exam01Main
  public class Exam01Main {
      public static void main(String[] args) {

          Person p = new Person();
          p.introduce();

          //익명클래스
          Person p2 = new Person() {
              @Override
              public void introduce() {
                  System.out.println("나는 생각하는 사람.");
              }
           };

           p2.introuduce();
        }
  }
  • ButtonClickListener
  public interface ButtonClickListener {
      void click();
  }
  • EventMain
    public class EventMain {

        //버튼 클래스
        public class Button {
            private ButtonClickListener listener;
            //setter
            public void setListener(ButtonClickListener listener) {
                this.listener = listener;
            }

            public void clik() {
                if(this.listener != null) {
                    this.listener.click();
                }
            }
        }

        public ststic void main(String[] args) {
            EventMain main = new EvenrMain();
            //내부클래스 선언
            EventMain.Button button = main.new Button();

            ButtonClickListener listener = new ButtonClickListener() {
                @Override
                publick void click() {
                    System.out.println("버튼이 눌렸습니다.");
                }
            };
            button.setListener(listener);
            button.click();
        }
    }
profile
꼭 해내는 사람

0개의 댓글