본문 바로가기
Java/연습문제

[명품자바] 연습문제 6장(모듈과 패키지 개념,자바 기본패키지) 이론문제

by Meaning_ 2021. 7. 3.
728x90
반응형

1번

 

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

 

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

 

= 다른 패키지에 있는 클래스 사용 시 서두에 선언해서 컴파일러에게 클래스의 경로 알려준다.

 

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

 

Random클래스가java,util 패키지에 있음을 컴파일러에게 알려주는 것이고, Random이름을 사용하면 컴파일러가 Random클래스의 경로명을 찾을 때, import문을 참조하여 찾게한다.

java.util 패키지에서도 확인할 것을 컴파일러에게 지시하는 것이다. 만일 Random 클래스를 사용하면 Random클래스가 어떤 패키지에 있는지 찾기위해 java.util패키지에서도 확인해본다. 

 

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

 그렇다, 완전경로를 사용하면 된다.

 

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

java.lang 패키지 (Math,String,System등이 있다)

 

 

2번

 

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

 

1) package 키워드를 이용하여  패키지를 선언한다.

2) 서로 관련된 클래스와 인터페이스들을 하나의 디렉토리에 묶어놓은 것이다.

3) 패키지는 컴파일러에게 클래스 파일들을 저장하는 위치를 지정한다.

4) 자바 JDK는 클래스들을 모두 하나의 패키지에 담아 제공한다. --> 클래스들을 분산 저장한다.

 

 

import java.util.StringTokenizer;

public calss 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());

}

}

 

a=3 b=5 c=6

 

[6장 3번]

 

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

 

[6장 4번]

 

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

a

3

b

5

c

6

합은 14

 

try-catch 예외처리 구문 이용

NumberFormatException =문자열이 나타내는 숫자와 일치하지 않는 타입의 숫자로 변환시 발생 

 

[6장 5번]

 

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

                 ; -->package device;

public class TV {

private int size;

public TV(int size) { this.size = size; }

}

 

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

           

; -->package app;

                   ; import device.TV;

public calss TV {

private int size;

public TV(int size) { this.size = size; }

}

 

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

- TV 클래스를 컴파일한 TV.class 파일의 경로명은 device.TV.class이고, Home 클래스를 컴파일한 Home.class 파일의 경로명은 app.Home.class이다.

 

[6장 6번]

 

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

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

 

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

 

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

 

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

 

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

 

[6장7번]

 

왜 결과가 true,false인지 설명해 보시오

 

"가나다라" 문자열은 자바 가상 기계의 스트링 리터럴 테이블에 저장되고, String a의 레퍼런스 a는 리터럴 테이블을 가리키므로, "가나다라" 문자열의 레퍼런스와 레퍼런스 a의 값은 일치한다.

 하지만, new String(a)에 의해 생성되는 객체는 에 생성되므로 String b는 힙 영역을 가리킨다. 그러므로 a == b의 연산에서 a b의 레퍼런스 값은 서로 달라 연산 결과는 false가 된다.

 

[6장 8번]

 

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

       Oh,Happy     

Oh,Happy

Oh,Happy Day.

 

*trim은 문자열 앞뒤 공백 제거

 

[6장 9번]

 

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

 

b

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

c,e

 

[6장 10번]

 

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

(1) Double PI = 3.14;

- 3.14를 Double.valueOf(3.14) -->자동 박싱

(2) double pi = PI;

- PI를 PI.doubleValue();로 처리 --> 자동 언박싱

(3) System.out.println(3 + Integer.valueOf(5));

- Integer.valueOf(5)는 wrapper클래스, 3은 기본 자료형-->자동 언박싱

사실상 Integer.valueOf(5).intValue()+3 과 마찬가지이므로 언박싱한 것. 

(4) if('c' == Character.valueOf('c');

- Chracter.valueOf('c')는 wrapper클래스이고 'c'는 기본 자료형-->자동 언박싱

 

[6장 11번]

 

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

 

 

 

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

 

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

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

 

[6장 12번]

 

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

 

728x90
반응형

댓글