개발 공부/Java
[Java] 제네릭 클래스 (Generic Class)
훌룽이
2023. 1. 24. 12:34
- Generic : 데이터의 타입을 일반화 한다.
자바는 객체를 담아 편하게 관리할 수 있는 컬렉션(Collection) 이라는 자료구조를 제공한다. 초기에는 어떤 객체를 담아야 할지 몰라서 모든 클래스를 담을 수 있는 Object 클래스를 사용하였다. Object 클래스는 모든 자료형의 클래스를 포함 하기 때문이다. 하지만 Object 클래스는 코드를 실행 해볼 수 없는 문제점이 있다.
이러한 문제점을 극복할 수 있는것이 제네릭 타입이다. 제네릭 타입은 하나의 코드를 다양한 타입의 객체에 재사용하는 객체지향기법이다.
1) Cup 클래스 : 제네릭 타입으로 선언
public class Cup<T> { // 타입 매개변수 명시 <T>
private T beverage;
public Cup(T beverage) { // 생성자 생성 가능
this.beverage = beverage;
}
public T getBeverage() { // 반환형은 T 이다
return beverage;
}
public void setBeverage(T beverage) {
this.beverage = beverage;
}
}
2) Boricha 클래스
public class Boricha {}
3) Beer 클래스
public class Beer {}
4) main 클래스
public class CupTest {
public static void main(String[] args) {
Cup<Boricha> c = new Cup<Boricha>(null);
c.setBeverage(new Boricha());
Boricha b = c.getBeverage();
}
}