728x90

[제네릭이란?]

- 다양한 타입의 객체를 지원하는클래스, 인터페이스 또는 메소드를 정의하는 방법

- 같은 동작을 하는 클래스나 메소드를 계속 구현할 필요 없이 한번 정의하면 여러 타입에서 사용가능 하다.

- 제네릭은 다양한 타입의 '객체'를 지원한다고 하였다. 즉, 기본 자료형은 제네릭 타입으로 사용 불가능하다.

- 기본 자료형을 사용하려면 Wrapper 클래스를 사용하면 된다.    

 

[제네릭의 장점]

1. 제네릭을 사용하면 잘못된 타입이 들어 오는 것을 컴파일 단계에서 방지할 수 있다.

2. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해 줄 필요가 없다. 즉, 관리가 편리함.

3. 비슷한 코드를 구현할 경우 여러 타입에서 사용가능하기 때문에 재사용성이 높다.

 

[코드]

public static void main(String[] args){

Integer intArray = {1, 2, 3, 4, 5};
String stringArray = {"가", "나", "다"};

arr(intArray);
arr(stringArray);

}

private static <T> void arr(T[] arr){
    for(T type : arr){
        System.out.println(t);
    }
}
  • 위의 코드처럼 <T : Type, K : Key, V : Value, E : Element 등등 > 안에 타입을 지정해주면 된다. 
  • ArrayList<String>, List<T> 등등 이런 것들도 제네릭이다.  

[제네릭 클래스]

- 제네릭 클래스도 위에 설명한 제네릭과 같다.

 

아래 코드로 살펴보면 

 

[코드]

public static void main(String[] args) {
	
    FixPhone<String> fix = new FixPhone<>("홍길동");
    fix.come();
    
    FixPhone<Integer> fix2 = new FixPhone(1);
    fix.com();

}

public class FixPhone <T>{
    public T name; // 손님 이름

    public fixPhone(T name){
        this.name = name;
    }

    public void come(){
        System.out.println(name + " 고객님 차례가 되었습니다.);
    }
}

- 클래스 명 뒤에 <>로 타입을 지정하여 사용할 수 있다.

 

[Wrapper 클래스]

Wrapper 클래스는 기본 자료형을 객체 형태로 만들어 사용할 수 있도록 해주는 것이다.

기본자료형 Wrapper 클래스
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
void Void

 

728x90

'Java' 카테고리의 다른 글

[Collection 프레임워크] - LinkedList  (0) 2023.06.12
[Collection 프레임워크] - ArrayList  (0) 2023.06.12
인터페이스 - 놀이공원 티켓 구입하기  (0) 2023.06.08
인터페이스  (0) 2023.06.08
추상클래스  (0) 2023.06.08

+ Recent posts