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 |