Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 백준
- 백준온라인저지
- 백준스택
- 이것이자바다
- 백준10828
- 확인문제
- 백준9012
- 합성곱연산
- 가운데를말해요
- 이것이자바다9장
- 웹개발기초
- 윤곽선검출
- 2019카카오코테
- 카카오코테
- BOJ
- KT포트포워딩
- 백준가운데를말해요
- 이것이자바다확인문제
- 코테
- 코딩테스트실력진단
- java
- 딥러닝
- 백준괄호
- 컴퓨터비전
- BOJ1655
- 백준평범한배낭
- 스파르타코딩클럽
- 운영체제
- 냅색알고리즘
- 코드트리
Archives
- Today
- Total
코딩하는 락커
[이것이 자바다] ch09 확인문제 본문
1. 중첩 멤버 클래스에 대한 설명으로 틀린 것은 무엇입니까?
- 인스턴스 멤버 클래스는 바깥 클래스의 객체가 있어야 사용될 수 있다.
- 정적 멤버 클래스는 바깥 클래스의 객체가 없어도 사용될 수 있다.
- 인스턴스 멤버 클래스 내부에는 바깥 클래스의 모든 필드와 메소드를 사용할 수 있다.
- 정적 멤버 클래스 내부에는 바깥 클래스의 인스턴스 필드를 사용할 수 있다.
2. 로컬 클래스에 대한 설명으로 틀린 것은 무엇입니까?
- 로컬 클래스는 메소드 내부에 선언된 클래스를 말한다.
- 로컬 클래스는 바깥 클래스의 모든 필드와 메소드를 사용할 수 있다.
- 로컬 클래스는 static 키워드를 이용해서 정적 클래스로 만들 수 있다.
- final 특성을 가진 매개 변수나 로컬 변수마 로컬 클래스 내부에서 사용할 수 있다.
3. 익명 객체에 대한 설명으로 틀린 것은 무엇입니까?
- 익명 객체는 클래스를 상속하거나 인터페이스를 구현해야만 생성될 수 있다.
- 익명 객체는 필드, 매개 변수, 로컬 변수의 초기값으로 주로 사용된다.
- 익명 객체에는 생성자를 선언할 수 있다.
- 부모 클래스나 인터페이스에 선언된 필드와 메소드 이외에 다른 필드와 메소드를 선언할 수 있지만, 익명 객체 내부에서만 사용이 가능하다.
4. 다음과 같이 Car 클래스 내부에 Tire와 Engine이 멤버 클래스로 선언되어 있습니다. NestedClassExample에서 멤버 클래스의 객체를 생성하는 코드를 작성해보세요.
public class Car {
class Tire{}
static class Engine{}
}
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();
}
}
5. AnonymousExample 클래스의 실행 결과를 보고 Vehicle 인터페이스의 익명 구현 객체를 이용해서 필드, 로컬 변수의 초기값과 메소드의 매개값을 대입해보세요.
public interface Vehicle {
public void run();
}
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 v1){
v1.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("트럭이 달립니다.");
}
});
}
}
6. 다음 Chatting 클래스는 컴파일 에러가 발생합니다. 원인이 무엇입니까?
public class Chatting {
void startChat(String chatId) {
String nickName = null;
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){}
}
}
답: Chat 로컬 클래스에서 nickName이라는 로컬 변수를 사용하고 있으므로 final 특성을 갖게 되는데, 이 nickName 변수를 null로 수정하고 있고 이 때문에 컴파일 에러가 발생함. String nickName = chatId; 로 막바로 chatId 값을 넣어주는 방식으로 코드를 수정하면 컴파일 에러가 발생하지 않음.
슬슬 복잡해지고 있다... 락꿈사 팟팅
'☕️ Java' 카테고리의 다른 글
[이것이 자바다] ch10 확인문제 (0) | 2022.01.04 |
---|---|
[이것이 자바다] ch08 확인문제 (0) | 2021.12.23 |
[이것이 자바다] ch07 확인문제 (0) | 2021.12.21 |
[이것이 자바다] ch06 확인문제 (0) | 2021.12.19 |
Comments