티스토리 뷰
1. Generic 메소드에 대하여 설명하시오.
>> 함수 안에도
미리 데이터 타입을 정하기 때문에 형변환 안해도 된다.
함수 앞에 t 붙은거
파라미터부터 함수에 있는 T를 지정하기 위한 t
2.Generic(제네릭) 클래스의 타입 인자 제한하는 방법과 효과는?
ㅑㅑ호ㅗㄹ호
3.와일드 카드란?
호ㅗㄹ홇
4. 아래가 에러나는 이유를 설명하시오.
class Box<T> {
private T ob;
public void set(T o) { ob = o; }
public get() { return ob; }
}
...
public static void inBox(Box<? super Toy> box, Toy n) {
box.set(n); // 넣는 것! OK!
Toy myToy = box.get(); // 꺼내는 것! Error!
}
ㄴㅇㄹㄴㅇㄹㅇㄴㄹ
5. 아래의 소스코드 중에 System.out.println(zBox.get().get().get()); 부분을 설명하시오.
class Box<T> {
private T ob;
public void set(T o) {
ob = o;
}
public T get() {
return ob;
}
}
public class BoxInBox {
public static void main(String[] args) {
Box<String> sBox = new Box<>();
sBox.set("I am so happy.");
Box<Box<String>> wBox = new Box<>();
wBox.set(sBox);
Box<Box<Box<String>>> zBox = new Box<>();
zBox.set(wBox);
System.out.println(zBox.get().get().get());
}
}
ㄴㅇㄹㄴㅇㄹㄴㅇㄹ
6. 아래를 컴파일 에러가 나지 않게끔 프로그래밍 하시오.
public static void main(String[] args) {
Box7<Integer> box1 = new Box7<>();
box1.set(99);
Box7<Integer> box2 = new Box7<>();
box2.set(55);
System.out.println(box1.get() + " & " + box2.get());
swapBox(box1, box2);
System.out.println(box1.get() + " & " + box2.get());
}
출력 값:
99 & 55
55 & 99
객체 생성:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class Box7<T> {
private T num;
public void set(T num) {
this.num = num;
}
public T get() {
return num;
}
}
|
cs |
메인클래스:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public class Swap {
public static void main(String[] args) {
Box7<Integer> box1 = new Box7<>();
box1.set(99);
Box7<Integer> box2 = new Box7<>();
box2.set(55);
System.out.println(box1.get() + " & " + box2.get());
swapBox(box1, box2);
System.out.println(box1.get() + " & " + box2.get());
}
...
|
cs |
Swap메서드를 이용하기 위한 static 생성:
1
2
3
4
5
6
7
8
9
|
...
public static <T> void swapBox(Box7<T> box1, Box7<T> box2) {
T temp = box1.get();
box1.set(box2.get());
box2.set(temp);
}
}
|
cs |
종합:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
class Box7<T> {
private T num;
public void set(T num) {
this.num = num;
}
public T get() {
return num;
}
}
public class Swap {
public static void main(String[] args) {
Box7<Integer> box1 = new Box7<>();
box1.set(99);
Box7<Integer> box2 = new Box7<>();
box2.set(55);
System.out.println(box1.get() + " & " + box2.get());
swapBox(box1, box2);
System.out.println(box1.get() + " & " + box2.get());
}
public static <T> void swapBox(Box7<T> box1, Box7<T> box2) {
T temp = box1.get();
box1.set(box2.get());
box2.set(temp);
}
}
|
cs |
7.Scanner를 이용하여 한 라인을 읽고, 공백으로 분리된 어절이 몇 개 들어 있는지 "그만"을 입력할 때까지 반복하는 프로그램을 작성하라.
>>I love Java.
어절 개수는 3
>>자바는 객체 지향 언어로서 매우 좋은 언어이다.
어절 개수는 7
>>그만
종료합니다...
[Hint] Scanner.nextLine()을 이용하면 빈칸을 포함하여 한 번에 한 줄을 읽을 수 있다.
(1) StringTokenizer 클래스를 이용하여 작성하라.
ㄴㅇㄹㄴㄴㅇ
'면접준비 > KOSMO 허쌤 숙제' 카테고리의 다른 글
학습정리-11-08 (0) | 2021.11.08 |
---|---|
학습정리-11-05 (0) | 2021.11.06 |
학습정리-11-03 (0) | 2021.11.03 |
학습정리-11-02(compareTo) (0) | 2021.11.02 |
학습정리-11-01 (0) | 2021.11.01 |
댓글