JAVA/명품 JAVA Programming

[(개정판 4판) 명품 JAVA Programming] 6장 이론 문제

최옥구 2023. 2. 3. 15:00
반응형

1. import에 대한 다음 질문에 답하라.

(1) import 문은 언제 사용하며, import 문이 의미하는 바는 무엇인가?

- import는 C/C++의 include와 같이 타 패키지 자체나 그 안에 있는 클래스의 경로를 추가하는 것이다.

 

(2) import java.util.Radom;과 import java.util;의 의미는 각각 무엇인가?

- 전자는 util 패키지에 Random클래스를 이용한다는 것이고, 후자는 util패키지를 임포트 한다는 것이다.

 

(3) import 문을 사용하지 않고도 자바 프로그램을 작성할 수 있는가?

- import 문을 사용하지 않고도 작성할 수 있다. 다만 타 패키지에 있는 클래스를 사용하기 위해서는 클래스 앞에 일일이 경로를 작성해주어야 한다.

 

(4) 어떤 패키지에 속한 클래스는 import문 없이도 작성할 수 있는가?

- java.lang

 

2. 패키지에 대한 설명 중 잘못된 것은?

- 4번 / 자바 JDK는 클래스들을 여러 패키지에 묶어서 제공합니다.

 

[3 ~ 4] 다음은 코드와 실행 결과이다.

import java.util.StringTokenizer;
public class Example{
	public static void main(String[] args) {
		StringTokenizer st = new StringTokenizer("a = 3,b = 5,c = 6", ",");
		while(st.hasMoreTokens())
			System.out.println(st.nextToken());
	}
}

3. import 문을 사용하지 않도록 Example 클래스를 다시 작성하라.

public class Example{
	public static void main(String[] args) {
		java.util.StringTokenizer st = new java.util.StringTokenizer("a = 3,b = 5,c = 6", ",");
		while(st.hasMoreTokens())
			System.out.println(st.nextToken());
	}
}

4. 다음과 같이 출력되도록 코드를 수정하라.

 

5. 다음 물음에 답하라. 

(1) 다음 클래스를 device 패키지에 속하게 하고자 한다. 빈칸에 적합한 코드를 작성하라. 

- pakage device;

 

(2) 앞에서 작성한 TV 클래스를 활용하는 Home 클래스를 작성한다. Home 클래스를 app 패키지에 저장하고자 할 때 빈칸에 적합한 코드를 작성하라.

- pakage app; import device.TV; 

 

(3) TV 클래스와 Home 클래스를 컴파일한 TV.class와 Home.class의 경로명은?

-  device.TV.javac / app.Home.javac

 

6. Wrapper 클래스에 대한 질문이다. 다음 물음에 답하여라. 

(1) 정수 20을 문자열 변수 s1에 "20"으로 저장한 코드를 작성하라. 

- String s1 = Integer.toString(20);

 

(2) 문자열 "35.9"를 double 타입 변수 d에 실수 값 35.9로 저장하는 코드를 작성하라.

- double d = Double.parseDouble("35.9");

 

(3) "true" 문자열을 boolean 타입 변수 b에 불린 값 true로 저장하는 코드를 작성하라.

- boolean b = Boolean.parseBoolean("true");

 

(4) 정수 30을 이진수의 문자열로 변환하여 s2에저장하는 한 줄의 코드를 작성하라.

- String s2 = Integer.toBinaryString(20);

 

(5) 문자 'c'를 문자열 "c"로 변환하여 변수 c에 저장하는 한 줄의 코드를 작성하라.

String c = Character .toString('c');

 

7. 다음 코드의 실행 결과와 실행 결과의 이유를 말하라.

- true, false / 객체 비교에서 == 연산자는 두 객체의 내용물이 같은지를 판단하는 것이 아니라, 두 레퍼런스가 동일한 객체를 가리키는지 비교하는 연산자이다. 따라서 첫번째 a객체와 문자열을 비교하는 것이지만, 두번째의 b객체와 a체 비교는 false가 나온다.

 

8. 다음 코드가 실행된 후 a, b, c 문자열은 무엇인가?

- Oh, Happy Day. / 두번째 줄에서 앞뒤 공백이 제거되고, 3번째 줄에서 Day. 가 추가된다.

 

9. 다음 코드에 대해 물음에 답하여라. 

public class Example{
	public static void main(String[] args) {
		String a = "Hello";
		String b = "Hello";
		String c = "Java";
		String d = new String("Hello");
		String e = new String("Java");
		String f = new String("Java");
	}
}

(1) a와 == 연산을 수행하였을 때 true가 되는 문자열을 b ~ f 중 모두 골라라.

- b

 

(2) f와 equals() 연산을 수행하였을 때 true가 되는 문자열을 a ~ e 중 모두 골라라.

- c, e 

 

10. 다음 중 자동 방식과 자동 언박싱이 있는 부분을 파악하라. 

(1) 자동 박싱 / Double PI = Double.valueof(3.14);

(2) 자동 언박싱 / double pi = PI.doubleValue(); 

(3) 자동 언박싱 

(4) 자동 언박싱

 

11. 100에서 255까지(255 포함)의 난수를 10개 발생시키는 코드이다.

for(int i = 0; i < 10; i++) {
	System.out.print(____________________);
	System.out.print(" ");
}

(1) Math 클래스를 활용하여 빈칸에 적절한 코드를 작성하라.

- (int)(Math.random() * 255 + 1)

 

(2) Random 클래스로 난수를 발생시키도록 코드 전체를 재작성하라. 

import java.util.Random;

public class Example{
	public static void main(String[] args) {
		Random r = new Random();
		for(int i = 0; i < 10; i++) {
			System.out.print(r.nextInt(255) + 1);
			System.out.print(" ");
		}
	}
}

 

12. 다음은 2020년 12월 25일의 약속을 저장하기 위해 Calender 클래스를 활용하는 코드이다. 주석문에 맞도록 코드를 작성하라.

import java.util.Calendar;

public class Example{
	public static void main(String[] args) {
		Calendar date = Calendar.getInstance();
		date.clear();
		date.set(Calendar.YEAR, 2020);
		date.set(Calendar.MONTH, 11);
		date.set(Calendar.DAY_OF_MONTH, 25);
		System.out.println("약속 날짜는 " + date.get(Calendar.YEAR) + "년 " + (date.get(Calendar.MONTH) + 1) + "월 " + date.get(Calendar.DAY_OF_MONTH) + "일");
	}
}
반응형