티스토리 뷰

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
댓글