반응형
Preface
확인문제를 풀기 전까진 별 생각이 없었는데, 6번 문제의 해답을 고민하던 도중 문득 로컬 클래스와 익명 객체에서 사용되는 변수의 final 특성에 관한 개념이 헷갈렸다.
이번 글을 업로드한 후 책을 다시 한 번 천천히 읽어보며 해당 개념을 확실히 이해하고 넘어가야 할 것 같다.
- 4번
package ch9;
class Car {
class Tire {}
static class Engine {}
}
public class Exercise4 {
public static void main(String[] args) {
Car myCar = new Car();
Car.Tire tire = myCar.new Tire();
Car.Engine engine = new Car.Engine();
}
}
- 5번
package ch9;
interface Vehicle {
public void run();
}
class Anonymous5 {
Vehicle field = new Vehicle() {
@Override
public void run() {
System.out.println("cycle");
}
};
void method1() {
Vehicle localVar = new Vehicle() {
@Override
public void run() {
System.out.println("car");
}
};
localVar.run();
}
void method2(Vehicle v) {
v.run();
}
}
public class Exercise5 {
public static void main(String[] args) {
Anonymous5 anony = new Anonymous5();
anony.field.run();
anony.method1();
anony.method2(new Vehicle() {
@Override
public void run() {
System.out.println("truck");
}
});
}
}
- 6번: nickName이 중첩 클래스에서 사용되어 final 특성을 지니므로 수정이 불가능하지만, 초기값을 null로 설정한 후 변경했기 때문에 컴파일 오류가 발생한다.
728x90
반응형
'Java > 이것이 자바다' 카테고리의 다른 글
기본 API 클래스 (1) (0) | 2023.04.13 |
---|---|
예외 처리 (0) | 2023.03.21 |
중첩 클래스와 중첩 인터페이스 (0) | 2023.03.15 |
이자바 8장(인터페이스) 확인문제 (0) | 2023.03.14 |
인터페이스 (0) | 2023.03.14 |
댓글