JAVA/JAVA 문제풀이

명품 자바 프로그래밍 5장 이론문제

공부 기록장 2023. 8. 14. 18:34

1. 다음 클래스에 대한 물음에 답하라.

(1) A objA = new objA(); 에 의해 생성되는 객체 objA의 멤버들을 모두 나열하라.

     답 : private int a;

            public void set(int a) { this.a=a; }

 

(2)  B objB = new objB(): 에 의해 생성되는 객체 objB의 멤버들을 모두 나열하라.

     답 : private int a; 

            public void set(int a) { this.a=a; }

            protected int b,c;

 

(3) C objC = new objC(); 에 의해 생성되는 객체 objC의 멤버들을 모두 나열하라.

    답 :  private int a; 

            public void set(int a) { this.a=a; }

            protected int b,c;

            public int d,e;

 

(4)  클래스 D를 다음과 같이 작성하였을 때, 오류가 발생하는 라인을 모두 찾아라.

    답 : 1번

 


2. 자바의 모든 클래스가 반드시 상속받게 되어 있는 클래스는?

   답 : 1번


3. 상속을 이용하여 다음 클래스들을 간결한 구조로 재작성하라.


4. 다음 중 설명에 적절한 단어를 기입하라.

자바에서 상속받는 클래스를 서브클래스라고 부르며, extends 키워드를 이용하여 상속을 선언한다. 

상속받은 클래스에서 상속해준 클래스의 멤버를 접근할 때 super 키워드를 이용한다. 

한편, 객체가 어떤 클래스의 타입인지 알아내기 위해서는 instanceof 연산자를 이용하며, 

인터페이스는 클래스와 달리 interface 키워드를 이용하여 선언한다.

 


5. 상속에 관련된 접근 지정자에 대한 설명이다. 틀린 것은?

답 : 2번, protected 멤버는 다른 패키지에 있는 서브 클래스에서도 접근할 수 있다.

 


6. 다음 빈칸에 적절한 한 줄의 코드를 삽입하라.


7. 상속에 있어 생성자에 대해 묻는 문제이다. 실행될 때 출력되는 내용은 무엇인가?

답 : 

A
B : 11


8. 다음 코드에서 생성자로 인한 오류를 찾아내어 이유를 설명하고 오류를 수정하라.

답 : protected A(int i) { a=i;} 부분을 

       public A( ){  } 로 수정하거나 

   

    public B() { b =0; } 부분을

    public B() { super(0); b=0;} 로 수정한다.

 


9. 다음 추상 클래스의 선언이나 사용이 잘못된 것을 있는 대로 가려내고 오류를 지적하라.

답 : 2번 ( f함수에 코드가 작성되어 있기 때문에 추상 메소드가 아니여서 추상 클래스가 될 수 없다)

       3번 (클래스 C는 추상클래스인  B를 상속받으며 오버라이딩을 하지 않고 있기 때문에 abstract class B extends B로                 수정해야한다.)

       4번 (클래스 B의 f 함수의 타입은 int형인데 상속받은 클래스C에서는 void 타입이기 때문에 오류가 난다)

 


10 .추상 클래스를 구현하는 문제이다. 실행 결과와 같이 출력되도록 클래스 B를 완성하라.


11. 다음 상속 관계의 클래스들이 있다.

(1)  다음 중 업캐스팅을 모두 골라라?

      답 : 2번, 3번

 

(2)  다음 코드를 실행한 결과는?

     답 : true

            false

 

(3)  다음 코드를 실행한 결과는?

     답 : true

            true


12. 동적 바인딩에 관한 문제이다. 다음 코드가 있을 때 질문에 답하라.

(1) Circle

(2) draw();

(3) super.draw();

 


13. 동적 바인딩에 대해 다음에 답하라.

(1) 다음 중 오류가 발생하는 것을 있는 대로 골라라.

   답 : 2번

 

(2) 다음 코드의 실행 결과 "반지름=10" 이 출력되도록 Circle 클래스를 수정하라.

   답 :

 


14. 다형성에 대한 설명 중 틀린 것은?

답 : 4번


15. 다음 중 인터페이스의 특징이 아닌 것은?

답 : 2번


16. 빈칸을 적절히 채우고, 실행 예시와 같이 출력되도록 클래스 TV에 필요한 메소드를 추가 작성하라.