[개인적으로 푼 문제이기 때문에 문제에 있는 답지와 의미가 조금 다를 수 있습니다]
1.import에 대한 다음 질문에 답하라.
(1) Import 문은 언제 사용하며 , import 문이 의미하는 바는 무엇인가?
import문은 다른 패키지에서 클래스들을 사용하기 위해 사용하며 , 파일의 위치를 더 정확히 파악하기 위해
import문을 사용합니다.
2.import java.util.Random;과 import java.util.*의 의미는 각각 무엇인가?
import java.util.Random은 java.util에 있는 Random클래스만을 가져오기 위한 import문입니다.
하지만 import java.util.*은 java.util에 있는 모든 클래스들을 사용하기 위한 것 입니다.
즉 *의 의미는 java util에 있는 모든 클래스들을 사용하고 싶다는 뜻 입니다.
3.import 문을 사용하지 않고도 자바 프로그램을 작성할 수 있는가?
작성 할 수 있습니다. 하지만 자바에서 제공되는 패키지들을 사용 할 수 없기 때문에
반드시 import문은 필요하다고 볼 수 있습니다.
4.어떤 패키지에 속한 클래스는 import 문 없이도 사용 할 수 있는가?
java lang 패키지에 속한 클래스들은 import 없이도 사용 할 수 있습니다.
java lang 패키지에 속한 클래스들은 Object String Math System 등이 있습니다.
2.패키지에 대한 설명 중 잘못된 것은?
(1) package 키워드를 이용하여 패키지를 선언한다.
(2) 서로 관련된 클래스와 인터페이스들을 하나의 디렉터리에 묶어 놓은 것이다.
(3) 패키지는 컴파일된 클래스 파일들을 저장하는 위치를 지정한다.
(4) 자바 JDK는 클래스들을 모두 하나의 패키지에 담아 제공한다.
4.자바 JDK는 클래스들을 모두 하나의 패키지에 담아 제공한다
>> 하나의 패키지에 담아 제공하지 않습니다.
[3-4] 다음은 코드와 실행 결과이다.
package 예제파일1번;
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 클래스를 다시 작성하라.
package 예제파일1번; 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.다음과 같이 출력되도록 코드를 수정하라.
a
3
b
5
c
6
합은 14
package 예제파일1번;
public class Example {
public static void main(String[] args) {
java.util.StringTokenizer st = new java.util.StringTokenizer("a=3,b=5,c=6",",=");
int sum = 0;
while (st.hasMoreTokens()) {
String next = st.nextToken();
try {
sum = sum +Integer.parseInt(next);
System.out.println(next);
}
catch(NumberFormatException e) {
System.out.println(next);
}
}
System.out.println("합은 "+sum);
}
}
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 // app에 자바 클래스 파일을 저장합니다.
import device.TV // device에 저장된 TV 클래스 파일을 import를 통해 가져옵니다.
public class Home{
public Home(){
TV myTv = new TV(65);
}
(3) TV 클래스와 Home 클래스를 컴파일한 TV. class 와 Home.class의 경로명은?
TV 클래스는 device.tv이며 Home.class는 app에 패키지에 속한 경로입니다.
6.Wrapper 클래스에 대한 질문이다. 다음 물음에 답하여라.
(1) 정수 20을 문자열 변수 s1에 "20"으로 저장하는 코드를 작성하라.
Integer s1 = new Integer(20);
(2) 문자열 "35.9"를 double 타입 변수 d에 실수 값 35.9로 저장하는 코드를 작성하라.
double d = new Double(35.9);
(3) "true" 문자열을 boolean 타입 변수 b에 불린 값 true로 저장하는 코드를 작성하라.
boolean b = new Boolean(true);
(4) 정수 30을 이진수의 문자열로 변환하여 s2에 저장하는 한 줄의 코드를 작성하라.
String s2 = Integer.toBinaryString(30);
이진수의 변환은 반환 타입이 String 타입 이기때문에 타입을 String으로 해줘야 합니다
(5) 문자 'c'를 문자열 "c"로 변환하여 변수 c에 저장하는 한 줄의 코드를 작성하라.
String c = Character.toString('c');
7. 다음 코드의 실행 결과와 실행 결과의 이유를 말하라.
String a = "가나다라"; System.out.println(a=="가나다라"); String b = new String(a); System.out.println(a==b);
true와 false가 나온다. 그 이유는 == 연산자는 레퍼런스 즉 참조 값을 가르키는 것 이다.
즉 a는 "가나다라"를 가르키기 떄문에 a와 가나다라는 true가 나온다.
하지만 String은 클래스이기 때문에 a의 값을 b에 대입해도 a와 b은 다른 곳을 가르키게 된다.
그렇기에 a==b는 false가 나온다
8. 다음 코드가 실행된 후 a,b,c 문자열은 무엇인가?
String a = new String(" Oh , Happy");
String b = a.trim();
String c = b.concat("Day.");
a는 그대로 oh , happy가 나오게 됩니다. b는 trim(공백 제거)로 인해서 앞에 있는 공백 부분이 제거 되서
나오게 됩니다. c는 concat으로 인해 Day.가 맨 끝에 붙어서 나오게 됩니다. 결과로는
9. 다음 코드에 대해 물음에 답하여라.
String a = "Hello";
String b = "Hello";
String c = "Java";
String d = new String("Hello");
String e = new String("Java");
String f = new String("Java");
[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은 기본 자료형이다. _ 자동 언박싱
(4) if('c' == Character.valueOf('c');
- Chracter.valueOf('c')는 wrapper클래스이고 'c'는 기본 자료형이다. _ 자동 언박싱
[6장 11번]
100에서 255까지(255 포함)의 난수를 10개 발생시키는 코드이다.
192 207 131 249 204 120 132 207 194 236
(1) Math 클래스를 활용하여 빈칸에 적절한 코드를 작성하라.
(2) Random 클래스로 난수를 발생시키도록 코드 전체를 재작성하라.
[6장 12번]
다음은 2020년 12월 25일의 약속을 저장하기 위해 Calendar 클래스를 활용하는 코드이다. 주석문에 맞도록 코드를 작성하라.
'명품 자바 문제' 카테고리의 다른 글
명품자바 7장 연습문제 1~12 (1) | 2023.01.13 |
---|---|
명품 자바 6장 실습문제 (1) | 2023.01.12 |
[명품자바 5장] 상속 실습문제 (2) | 2023.01.10 |
[명품 자바] 제 4장 클래스와 객체 실습문제 (1) | 2023.01.06 |
[명품 자바 3장] 카드 번호 맞추기 게임 (1) | 2023.01.06 |