1. 중첩 멤버 클래스 - 중첩 클래스 중 클래스의 멤버로서 선언되는 것을 멤버 클래스라고 하고, 메소드 내부에서 선언되는 것을 로컬 클래스라고 한다.
답 : 4
정적 멤버 클래스 내부에는 바깥 클래스의 인스턴스 필드를 사용할 수 없다.
//정적 멤버 클래스 안에서는 바깥 클래스의 정적 필드와 메소드에만 접근할 수 있고 인스턴트 필드와 메소드는 접근할 수 없다.
2. 로컬 클래스 - 메소드 내에 선언되는 중첩 클래스이다.
답 : 3
로컬 클래스는 static 키워드를 이용해서 정적 클래스로 만들 수 없다.
//로컬 클래스는 접근 제한자 및 static을 붙일 수 없다. 메소드 내부에서만 사용되므로 접근을 제한할 필요가 없기 때문이다.
3. 익명 객체 - 이름이 없는 객체이다.
답 : 3
익명 객체에는 생성자를 선언할 수 없다.
//단독으로 생성할 수 없고 클래스를 상속하거나 인터페이스를 구현해야만 생성할 수 있다.
4.
package verify.exam04;
public class NestedClassExample2 {
public static void main(String[] args) {
Car myCar = new Car();
Car.Tire tire = myCar.new Tire();
Car.Engine engine = new Car.Engine();
}
}
5.
package verify.exam05;
import sec03.exam01_system_in_out.SystemOutExample;
public class Anonymous2 {
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();
}
}
package verify.exam05;
public class AnonymousExample2 {
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("트럭이 달립니다.");
}
}
);
}
}
6.
package verify.exam06;
public class Chatting2 {
void startChat(String chatId) {
String nickName = chatId;
Chat chat = new Chat() {
@Override
public void start() {
while(true) {
String inputData = "안녕하세요";
String message = "[" + nickName + "] " + inputData;
sendMessage(message);
}
}
};
chat.start();
}
class Chat {
void start() {}
void sendMessage(String message) {}
}
}
답 : 변수를 null로 선언한 이후 다시 변경할 수 없다.
String nickName = null; nickName = chatId; -(x)
String nicName = chatID; -(o)
//익명 객체 내부에서는 매개 변수나 로컬 변수를 final로 선언해 수정을 막는다.
'JAVA' 카테고리의 다른 글
이것이 자바다 11장 확인 문제 풀이 (기본 API 클래스) (0) | 2022.09.08 |
---|---|
이것이 자바다 8장 확인 문제 풀이 (인터페이스) (0) | 2022.09.08 |
쉽게 배우는 자바 (앱 만들기: 변수도입~ 반복문) (0) | 2022.08.27 |
쉽게 배우는 자바 (터미널에서 실행~상속) (0) | 2022.07.20 |
쉽게 배우는 자바 (~입력과 출력) (0) | 2022.07.18 |