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
반응형