문제 1

객체지향 개념의 4가지 특징을 적으시오.

  • 캡슐화
  • 상속
  • 다형성
  • 추상화

문제 2

생성자를 작성할 때 지켜야 하는 조건을 적으시오.

  1. 클래스 이름과 똑같아야 함
  2. 리턴 x, void x
  3. 모든 클래스에 반드시 1개의 생성자 존재해야 함
  4. 반드시 첫줄에 다른 생성자 호출 (this())

문제 3

오버라이딩할 때 지켜야할 3가지 조건을 적으시오.

  1. 선언부 동일
  2. 제어자 좁은쪽으로 변경 x
  3. 조상보다 많은 예외선언 x

문제 4

오버로딩할 때 지켜야하는 3가지 조건을 적으시오.

  1. 메서드 이름 같아야 함
  2. 매개변수 갯수 or 타입 달라야 함
  3. 리턴타입 상관 x

문제 5

다형성의 장점 2가지를 적으시오.

  1. 조상 참조변수를 매개변수로 다루면 자손 클래스 메서드 사용가능
  2. 하나의 배열 안에 여라 타입 자손 객체 다룰 수 있음

문제 6

static메서드가 같은 클래스의 인스턴스 변수를 사용할 수 없는 이유에 대해 적으시오.

  • 인스턴스 변수는 인스턴스 생성시 사용가능 But Static 메서드 호출되었을 때 인스턴스 생성 유무 모름

문제 7

메서드 aaa()의 반환타입이 인터페이스 Runnable일 때, 이 메서드가 반환해야하는 값은?

(p.388 다형성 + 인터페이스)

  • 리턴타입이 인터페이스라는 것은 메서드가 해당 인터페이스를 구현한 클래스의 인스턴스를 반환한다는 것을 의미한다

문제 8

객체를 생성했을 때, 객체가 초기화 되는 과정을 순서대로 적으시오.(생성자, 인스턴스 초기화 블럭, static 초기화 블럭, 인스턴스 멤버 명시적초기화, static멤버 명시적초기화)

cv -> iv // 자동 -> 쉬움 -> 어려움(블럭 -> 생성자)

  • static 명시적 초기화 -> static 초기화 블럭 -> 인스턴스 명시적 초기화 -> 인스턴스 초기화 블럭 -> 생성자

문제 9

접근제어자를 접근 범위가 제일 넓은 것부터 순서대로 적으시오.

  • public -> protected -> (default) -> private

문제 10

인터페이스와 추상 클래스의 차이에 대해서 적으시오.

  • Interface -> 추상 메서드 or 상수만 존재 (단, 디폴트 메서드, static 메서드 예외)
  • Abstract class -> 추상 메서드가 들어있는 클래스 (다른 메서드가 있어도 된다).

참고자료

  • 자바의 정석 6~7장
  • 남궁성 강사님 시험자료