JAVA/자바 완전 정복

자바 완전 정복 9장 연습문제 풀이

GaeGim 2022. 7. 5. 00:16
반응형

Q1. 클래스 내부에 올 수 있는 4가지 구성 요소(필드, 메서드, 생성자, 이너 클래스)에서 사용할 수 있는 접근 지정자를 접근 범위가 큰 순서대로 쓰시오.

멤버 및 생성자에 붙는 접근 지정자..

-> public, protected, default, private

 

 

 

 

Q2. 클래스 자체에 사용할 수 있는 접근 지정자를 접근 범위가 큰 순서대로 쓰시오.

클래스에 붙는 접근 지정자..

-> public, default

 

 

 

 

Q3. 패키지 pack01 내에는 A.java, B.java 파일, 패키지 pack02 내에는 C.java, D.java 파일이 있다. 이들 4개의 소스 파일에서 클래스 A에 포함된 4개의 필드를 사용하고자 한다. 이때 각 클래스 위치에서 사용할 수 있는 모든 필드를 쓰시오.

package pack01;

public class A {
    public int a;
    protected int b;
    int c;
    private d;
    
    void abc() {
    	System.out.println(this.■■);	//a, b, c, d
    }
}

 

package pack01;

public class B {
    void bcd() {
    	A a = new A();
        System.out.println(a.■■); //a, b, c
    }
}

 

 

package pack02;

import pack01.A;

public class C {
    void cde() {
    	A a = new A();
        System.out.println(a.■■);	//a
    }
}

 

package pack02;

import pack01.A;

public class D extends A {
    void def() {
    	System.out.println(this.■■);	//a, b
    }
}

 

 

 

 

Q4. 다음 코드는 오류를 포함하고 있다. 오류가 발생한 위치와 그 이유를 설명하시오.

class A {
    int a = 2;
    static int b = 3;
    void abc() {
    	System.out.println(a);
    	System.out.println(b);
    }
    static void bcd() {
    	System.out.println(a);	//인스턴스 필드가 정적 메서드에 올 수 없다
    	System.out.println(b);
    }
}

 

 

 

 

Q5. 다음과 같이 1개의 인스턴스 필드(a)와 1개의 정적 필드(b)를 포함하고 있는 클래스 A가 정의돼 있다.

class A {
    int a = 3;
    static int b = 5;
}

이때 다음 코드의 실행 결과를 쓰시오.

A a1 = new A();
A a2 = new A();

a1.a = 30;
a1.b = 40;

a2.a = 50;
a2.b = 60;

System.out.println(a1.a);	//30
System.out.println(a1.b);	//60

System.out.println(a2.a);	//50
System.out.println(a2.b);	//60

 

 

 

 

Q6. 클래스 A가 다음과 같이 선언돼 있다.

class A {
    static int a;
    static {
    	a=8;
    }
}

이때 다음과 같이 System.out.println(A.a)의 출력값이 8이 나오도록 클래스 A를 완성하시오.

System.out.println(A.a);	//8

 

반응형