Chapter 09 - 중첩 선언과 익명 객체 확인문제

김태원·2023년 1월 17일
0

Chapter 09 - 중첩 선언과 익명 객체 확인문제

정답: 4

정적 멤버 클래스 내부에는 바깥 클래스의 인스턴스 필드를 사용할 수 없다.

정답: 3

로컬 클래스는 생성자와 메소드가 실행될 동안에만 객체를 생성할 수 있기 때문에 정적 클래스로 만들 수 없다.

정답: 3

익명 객체에는 생성자를 선언할 수 없다.

정답:

myCar.new Tire()
new Car.Engine()

정답:

public class ActionExample {
    public static void main(String[] args) {
        Action action = new Action() {
        @Override
        public void work() {
            System.out.println("복사를 합니다."); }
        };
        action.work();
    }
}

정답:

public class Anonymous {
    Vehicle field = new Vehicle() {
        @Override
        public void run() {
            System.out.println("자전거가 달립니다.");
        }
    };

    void method1() {
        Vehicle localVar = new Vehicle() {
            @Override
            public void run() {
                System.out.println("승용차가 달립니다.");
            }
        };
        localVar.run();
    }

    void method2(Vehicle v) {
        v.run();
    }
}
public class AnonymousExample {
    public static void main(String[] args) {
        Anonymous anony = new Anonymous();
        anony.field.run();
        anony.method1();
        anony.method2(
            new Vehicle() {
                @Override
                public void run() {
                    System.out.println("트럭이 달립니다.");
                }
            }
        );
    }

정답:

로컬 클래스 내부에서 값을 변경하지 못하도록 제한하기 때문에 로컬 변수를 로컬 클래스에서 사용할 경우 로컬 변수는 final 특성을 갖게 된다.
따라서 nickName 변수를 다음과 같이 chatId로 초기화해야 한다.

String ninckName = chatId;
profile
개발이 재밌어서 하는 Junior Backend Developer

0개의 댓글