💡 중첩 멤버 클래스에 대한 설명으로 틀린 것은 무엇입니까?
-
인스턴스 멤버 클래스는 바깥 클래스의 객체가 있어야 사용될 수 있다.
-
정적 멤버 클래스는 바깥 클래스의 객체가 없어도 사용될 수 있다.
-
인스턴스 멤버 클래스 내부에는 바깥 클래스의 모든 필드와 메소드를 사용할 수 있다.
-
정적 멤버 클래스 내부에는 바깥 클래스의 인스턴스 필드를 사용할 수 있다. ( ❌ )
💡 로컬 클래스에 대한 설명으로 틀린 것은 무엇입니까?
-
로컬 클래스는 메소드 내부에 선언된 클래스를 말한다.
-
로컬 클래스는 바깥 클래스의 모든 필드와 메소드를 사용할 수 있다.
-
로컬 클래스는 static 키워드를 이용해서 정적 클래스로 만들 수 있다. ( ❌ )
-
final 특성을 가진 매개 변수나 로컬 변수마 로컬 클래스 내부에서 사용할 수 있다.
💡 익명 객체에 대한 설명으로 틀린 것은 무엇입니까?
-
익명 객체는 클래스를 상속하거나 인터페이스를 구현해야만 생성될 수 있다.
-
익명 객체는 필드, 매개 변수, 로컬 변수의 초기값으로 주로 사용된다.
-
익명 객체에는 생성자를 선언할 수 있다. ( ❌ )
-
부모 클래스나 인터페이스에 선언된 필드와 메소드 이외에 다른 필드와 메소드를 선언할 수 있지만, 익명 객체 내부에서만 사용이 가능하다.
💡 첫 번째 코딩문제
public class NestedClassExample {
public static void main(String[] args) {
Car myCar = new Car();
Car.Tire tire = myCar.new Tire();
Car.Engine engine = new Car.Engine();
}
}
💡 두 번째 코딩문제
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("트럭이 달립니다.");
}
});
}
}
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();
}
}
💡 컴파일 에러의 원인 ?
값을 변경할 수 없는 상수 final 특성을 가지는 nickname 변수에 chatId 를 대입하려 해서 컴파일 에러가 발생한다. (null 도 하나의 값으로 인식)
'Java' 카테고리의 다른 글
이것이 자바다 9장 [중첩 클래스 & 중첩 인터페이스] (1) - 중첩 클래스 개념정리 (4) | 2019.12.01 |
---|---|
이것이 자바다 8장 [인터페이스] - 개념정리 및 확인문제 (0) | 2019.11.24 |
이것이 자바다 6장 [클래스] (1) - 개념정리 및 확인문제 (0) | 2019.11.11 |