1. 객체지향개념의 3가지 특징
2. 생성자를 작성할 때 지켜야 하는 조건 3가지
3. 오버라이딩할 때 지켜야 할 조건 3가지
4. 오버로딩할 때 지켜야 할 조건 3가지
5. 다형성의 장점 2가지
6. static메서드가 같은 클래스의 인스턴스 변수를 사용할 수 없는 이유
7. 메서드 aaa()의 반환타입이 인터페이스 Runnable일 때, 이 메서드가 반환해야 하는 값은?
8. 객체를 생성했을 때, 객체가 초기화 되는 과정의 순서
9. 접근제어자를 접근 범위가 제일 넓은 것부터 순서대로 나열하시오
10. 인터페이스와 추상 클래스의 차이
정답
1. 객체지향개념의 3가지 특징
1) 다형성
2) 상속
3) 캡슐화
코드의 반복을 줄이고 재사용성을 높임, 코드의 관리 용이, 기존 프로그래밍언어와 유사, 신뢰성 높은 프로그램이 개발 가능
2. 생성자를 작성할 때 지켜야 하는 조건 3가지
생성자 = 클래스명
생성자는 하나 이상 있어야 한다.
첫번째 줄에 반드시 다른 생성자를 호출해야 한다.
리턴 값이 없다. (void 사용x)
3. 오버라이딩할 때 지켜야 할 조건 3가지
선언부가 같아야 한다.
조상타입보다 접근 제어자의 범위를 좁힐 수 없다.
조상타입보다 예외처리가 많을 수 없다.
4. 오버로딩할 때 지켜야 할 조건 3가지
메서드의 이름이 같아야 한다.
매개변수의 타입이나 갯수가 달라야 한다.
리턴 타입의 변화는 오버로딩에 영향을 주지 않는다.
참고) 오버라이딩 : change -> 조상 메서드의 내용을 변경
오버로딩 : new -> 새로운 메서드를 작성
5. 다형성의 장점 2가지
하나의 매개변수에 여러타입의 객체를 담을 수 있다.
하나의 배열에 여러타입의 객체를 담을 수 있다.
6. static메서드가 같은 클래스의 인스턴스 변수를 사용할 수 없는 이유
static메서드가 초기화 되었을 때, 객체 생성 유무를 알 수 없으므로 인스턴스 변수를
사용할 수 없다.
7. 메서드 aaa()의 반환타입이 인터페이스 Runnable일 때, 이 메서드가 반환해야 하는 값은?
Runnable 인터페이스를 구현한 클래스의 인스턴스 참조값
8. 객체를 생성했을 때, 객체가 초기화 되는 과정의 순서
static 멤버 명시적초기화 -> static 초기화 블럭 -> 인스턴스 멤버 명시적초기화 ->
인스턴스 초기화 블럭 -> 생성자
9. 접근제어자를 접근 범위가 제일 넓은 것부터 순서대로 나열하시오.
public -> protected -> default -> private
10. 인터페이스와 추상 클래스의 차이
interface │ 추상클래스
───────────
다중상속 │ 단일상속
추상화↑ │ 추상화↓
완전껍데기│ 부족한것(iv, 메서드)
공통점 : 추상메서드의 집합
차이점 : interface는 iv와 구현된 메서드를 가질 수 없다.
(java 1.8 부터는 디폴트메서드가 추가 되었다.)