자바의 신 - 정리해 봅시다의 각 챕터별 정답
자바의 신 18장은 별도로 정리해 봅시다 파트가 수록되어 있지 않습니다.
1. 상속을 받는 클래스의 선언문에 사용하는 무엇인가요?
2. 상속을 받은 클래스의 생성자를 수행하면 부모의 생성자도 자동으로 수행되나요?
3. 부모 클래스의 생성자를 자식 클래스에서 직접 선택하려고 할 때 사용하는 예약어는 무엇인가요?
4. 메소드 Overriding과 Overloading을 정확하게 설명해 보세요.
5. A가 부모, B가 자식 클래스라면 A a = new B(); 형태로 객체 생성이 가능한가요?
A a = new B(); // A a = B; 도 가능
6. 명시적으로 형 변환을 하기 전에 타입을 확인하려면 어떤 예약어를 사용해야 하나요?
7. 6에서 사용한 예약어의 좌측에는 어떤 값이, 우측에는 어떤 값이 들어가나요?
for(ParentCasting instanceof:ChildCasting) { // 타입 이름, 임시 변수, 반복대상 객체
if(temParent instanceof ChildCasting) { // 객체, instanceof, 클래스 타입
...
}
}
8. 6의 예약어의 수행 결과는 어떤 타입으로 제공되나요?
9. Polymorphism이라는 것은 도대체 뭔가요?
1. API 문서를 자동으로 생성하는 명령어를 무엇이라고 했나요?
2. API의 왼쪽 상단에는 어떤 내용이 제공되나요?
3. API 왼쪽 하단에는 어떤 내용이 제공되나요?
4. API 우측 화면에는 보통 어떤 내용이 제공되나요?
5. Deprecated라는 것의 의미는 무엇인가요?
1. 모든 클래스의 최상위 부모 클래스인 Object 클래스는 어떤 패키지에 선언되어 있나요?
2. 클래스가 어떻게 선언되어 있는지 확인할 수 있는 명령어(실행 파일)의 이름은 무엇인가요?
3. Obejct 클래스에 선언되어 있는 모든 메소드는 여러분들이 Overriding해야 하나요?
4. object 클래스의 clone() 메소드의 용도는 무엇인가요?
5. System.out.println() 메소드를 사용하여 클래스를 출력했을 때 호출되는 Object 클래스에 있는 메소드는 무엇인가요?
6. 객체의 주소를 비교하는 것이 아닌, 값을 비교하려면 Obejct 클래스에 선언되어 있는 어떤 메소드를 Overriding해야 하나요?
7. Obejct 클래스에 선언되어 있는 hashCode()라는 메소드는 어떤 타입의 값을 리턴하나요?
1. 인터페이스에 선언되어 있는 메소드는 body(몸통)가 있어도 되나요?
2.인터페이스를 구현하는 클래스의 선언시 사용하는 예약어는 무엇인가요?
3. 일부만 완성되어 있는 클래스를 무엇이라고 하나요?
4. 3번의 답에 있는 클래스에 body(몸통)가 없는 메소드를 추가하려면 어떤 예약어를 추가해야 하나요?
5. 클래스를 final로 선언하면 어떤 제약이 발생하나요?
6. 메소드를 final로 선언하면 어떤 제약이 발생하나요?
7. 변수를 final로 선언하면 어떤 제약이 발생하나요?
8. enum 클래스 안에 정의하는 여러 개의 상수들을 나열하기 위해서 상수 사이에 사용하는 기호는 무엇인가요?
9. enum으로 선언한 클래스는 어떤 클래스의 상속을 자동으로 받게 되나요?
10. enum 클래스에 선언되어 있지는 않지만 컴파일시 자동으로 추가되는 상수의 목록을 배열로 리턴하는 메소드는 무엇인가요?
1. 예외를 처리하기 위한 세 가지 블록에는 어떤 것이 있나요?
2. 1의 답 중에서 "여기에서 예외가 발생할 것이니 조심하세요" 라고 선언하는 블록은 어떤 블록인가요?
3. 1의 답 중에서 "예외가 발생하든 안하든 얘는 반드시 실행되어야 합니다." 라는 블록은 어떤 블록인가요?
4. 예외의 종류 세 가지는 각각 무엇인가요?
5. 프로세스에 치명적인 영향을 주는 문제가 발생한 것을 무엇이라고 하나요?
6. try나 catch 블록 내에서 예외를 발생시키는 키워드는 무엇인가요?
7. 메소드 선언 시 어떤 예외를 던질 수도 있다고 선언할 때 사용하는 키워드는 무엇인가요?
8. 직접 예외를 만들 때 어떤 클래스의 상속을 받아서 만들어야만 하나요?
1. String 클래스는 fianl 클래스인가요?
2. String 클래스가 구현한 인터페이스에는 어떤 것들이 있나요?
3. String 클래스의 생성자 중에서 가장 의미없는 (사용할 필요가 없는) 생성자는 무엇인가요?
4. String 문자열을 byte 배열로 만드는 메소드의 이름은 무엇인가요?
5. String 문자열의 메소드를 호출하기 전에 반드시 점검해야 하는 사항은 무엇인가요?
6. String 문자열의 길이를 알아내는 메소드는 무엇인가요?
7. String 클래스의 equals() 메소드와 compareTo() 메소드의 공통점과 차이점은 무엇인가요?
(p 386~388)
공통점 : 매개변수로 넘어온 값과 String 객체가 같은지를 비교, 즉 동등성을 확인
차이점 : equals()는 boolean 값을 반환하는 반면, compareTo()는 매개변수로 넘어온 String 객체가 알파벳 순으로 앞에 있는 양수, 뒤에 있으면 음수를 반환한다. 즉, int 값을 반환한다.
8. 문자열이 "서울시"로 시작하는지를 확인하려면 String의 어떤 메소드를 사용해야 하나요?
9. 문자열에 "한국"이라는 단어의 위치를 찾아내려고 할 때에는 String의 어떤 메소드를 사용해야 하나요?
10. 9번 문제의 답에서 "한국"이 문자열에 없을 때 결과 값은 무엇인가요?
11. 문자열의 1번째부터 10번째 위치까지의 내용을 String으로 추출하려고 합니다. 어떤 메소드를 사용해야 하나요?
12. 문자열의 모든 공백을 * 표시로 변환하려고 합니다. 어떤 메소드를 사용하는 것이 좋을까요?
13. String의 단점을 보완하기 위한 두 개의 클래스는 무엇인가요?
14. 13번의 답에서 문자열을 더하기 위한 메소드의 이름은 무엇인가요?
1. Nested 클래스에 속하는 3가지 클래스에는 어떤 것들이 있나요?
2. Nested 클래스를 컴파일하면 Nested 클래스 파일의 이름은 어떻게 되나요?
$클래스명.class
3. StaticNested 클래스는 다른 Nested 클래스와 어떤 차이가 있나요?
4. StaticNested 클래스의 객체 생성은 어떻게 하나요?
OuterClass outer=new OuterClass();
5. 일반적인 내부 클래스의 객체 생성은 어떻게 하나요?
OuterClass.NestedClass nested=outer.new NestedClass();
6. Nested 클래스를 만드는 이유는 무엇인가요?
7. Nested 클래스에서 감싸고 있는 클래스의 private로 선언된 변수에 접근할 수 있나요?
8. 감싸고 있는 클래스에서 Nested 클래스에 선언된 private로 선언된 변수에 접근할 수 있나요?
1. @Override 어노테이션의 용도는 무엇인가요?
2. @SupressWarnings 어노테이션의 용도는 무엇인가요?
3. @Deprecated 어노테이션의 용도는 무엇인가요?
4. 어노테이션을 선언할 때 사용하는 어노테이션을 무엇이라고 부르나요?
5. 4번의 답에 있는 어노테이션들을 사용할 때 import 해야 하는 패키지는 무엇인가요?
6. @Targe 어노테이션의 용도는 무엇인가요?
7. @Retention 어노테이션의 용도는 무엇인가요?
8. @Inherited 어노테이션의 용도는 무엇인가요?
9. 어노테이션을 선언할 때에는 class 대신 어떤 예약어를 사용해야 하나요?
public @interface MyAnnotation {
String value();
}
본격적으로 13장부터 어렵다고 느껴지기 시작했다.
생소한 enum 개념부터 시작해서 코드와 병행하며 공부하지 않으면, 제대로 이해하지 못하겠다는 생각이 들었다. 😅
챕터별 중간 점검 파트인 정리해 봅시다에서도 13장부터 점점 틀리기 시작한 것 같다.
그래도 반복해서 정독하며 개념을 잘 정립해보자!
참고 사이트 : https://updown90.tistory.com/78
공식 사이트에서 답안을 적을 때에는, 특정 키워드를 포함해야만 답으로 인정이 됩니다.
따라서 특정 키워드를 확인하기 위해서는 위 사이트를 참고하면 좋을 것 같네요. 👍