IT CookBook JAVA 마스터/연습문제

IT CookBook JAVA 마스터 Ch.07 연습문제

은행털이 2023. 12. 11. 00:32

01. 다음 중 자바에서 객체를 생성하는 방법이 아닌 것은 무엇인가?

① 생성자 클래스 객체

new 키워드

super 키워드

클래스의 인스턴스

 

02. 다음 중 new 키워드를 사용하여 객체를 만드는 구문은 무엇인가?

 클래스명 = new 클래스명();

클래스명 객체명 = new 클래스명();

객체명 = new 클래스명();

클래스명 객체명 = new 객체명();

 

03. 다음 중 public 하위 클래스의 필드(멤버 변수)에 접근하는 방법은 무엇인가?

하위 클래스에 대한 객체를 만들고 접근 가능

슈퍼 클래스에 대한 객체를 만들고 접근 가능

하위 클래스에 접근 불가능

public 접근 제한자는 접근 불가능

 

04. 다음 중 생성자의 구문이 아닌 것은 무엇인가?

// 1번
class Constructor {
	Constructor() {
    
    }
}

 

// 2번
class Example {
	int x;
    Example() {
    	x = 100;
    }
}

 

// 3번 오답
class Demo {
	Constructor() {
    	in t x = 100; //생성자의 이름은 클래스명과 같아야함
    }
}

 

// 4번
class Constructor {
	int a;
    Constructor(int x) {
    	a = x;
    }
}

 

 

5. 다음 중 생성자를 사용하여 각기 다른 인수를 가질 수 있는 메서드는 무엇인가?

연산자 오버로딩

메서드 오버로딩

인수 오버로딩

생성자 오버로딩

 

6. 다음 프로그램에서 출력되는 x의 값은 무엇인가?

class MyExample {
	int x = 10;
}
public class MyClass {
	public static void main(String[] args) {
		MyExample object = new MyExample();
		object.x = 15;
		System.out.println(x);
	}
}

10

15

25

컴파일 오류

-> object.x ≠ x

 

7. 다음 프로그램의 실행 결과는 무엇인가?

public class MyClass {
	public static void add(int a, int b, int sum) {
		sum = a + b;
	}
	
	public static void main(String[] args) {
		int a = 1;
		int b = 2;
		int sum = 0;
		add(a, b, sum);
		System.out.println(" 합계 " + sum);
	}
}

컴파일 오류

3

2

0

-> add함수 내의 sum은 값복사가 일어나는, main메서드의 sum과는 전혀 별개의 변수이다.

 

08. 다음 프로그램의 실행 결과는 무엇인가?

class ExClass {
	int number;
}

public class MyClass {
	public static void add(int a, int b, int sum) {
		sum = a + b;
	}
	
	public static void main(String[] args) {
		ExClass b = new ExClass();
		b.number = 30;
		ExClass b2 = b;
		b = null;
		
		System.out.println("number 값 : " + b2.number);
	}
}

number 값 : NULL

number 값 : 25

number 값 : 0

컴파일 오류

-> NullPointerException. null이 아닌 b2.number를 사용해야함.

 

09. 다음 프로그램의 실행 결과는 무엇인가?

public class MyClass {
	private String name = "Java";
	
	public static void main(String[] args) {
		MyClass s = new MyClass();
		s.name = "JavaBook";
		System.out.println(s.name);
	}
}

Java

컴파일 오류

name

JavaBook

 

10. 다음 프로그램의 실행 결과는 무엇인가?

class ExClass {
	private int a = 1;
	
	private void display() {
		System.out.println("private 메서드입니다");
	}
}

public class MyClass {
	public static void main(String[] args) {
		ExClass obj = new ExClass();
		obj.a = 2;
		System.out.println(a);
		obj.display();
	}
}

컴파일 오류

2.Private 메서드입니다

1. Public 메서드입니다

Private 메서드입니다

-> obj.a = 2는 a가 private이므로 ExClass의 스코프 외부에있는 MyClass에서는 접근 불가

-> System.out.println(a)는 객체에 접근도 하지않았으므로 불가

-> obj.display()메서드는 private이므로 ExClass의 스코프 외부에있는 MyClass에서는 접근 불가