본문 바로가기
Java/이것이 자바다

이자바 9장(중첩 클래스와 중첩 인터페이스) 확인문제

by k-mozzi 2023. 3. 17.
반응형
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

댓글