-
자바 step11 - GenericClassJava 2022. 11. 7. 18:29
포괄 클래스(Generic Class)의 이해
기본 바탕이 되는 포괄 클래스(Generic Class)를 생성하였다.
package test.mypac; /* * T 는 type 파라미터 이다. * * T 를 포괄 클래스(Generic 클래스) 라고 한다. */ public class FruitBox<T> { // 필드 private T item; // 필드에 값을 넣는 메소드 public void setItem(T item) { this.item=item; } // 필드에 저장된 값을 리턴하는 메소드 public T getItem() { return item; } }
포괄 클래스인 FruitBox에 들어갈 외부 class(아이템)로 Apple class를 만들었고 이와 같은 class로 banana, orange class를 만들었다.
package test.mypac; public class Apple { }
package test.main; import test.mypac.Apple; import test.mypac.Banana; import test.mypac.FruitBox; public class MainClass01 { public static void main(String[] args) { // Generic 클래스를 Apple 로 지정해서 FruitBox 객체 생성하기 FruitBox<Apple> box1=new FruitBox<Apple>(); // 메소드의 인자로 Apple type 전달하기 box1.setItem(new Apple()); // 메소드가 리턴해주는 Apple type 받아오기 Apple item1=box1.getItem(); // Generic 클래스를 Bnana 로 지정해서 FruitBox 객체를 생성해서 위와 비슷한 작업을 해보세요. FruitBox<Banana> box2 = new FruitBox<Banana>(); box2.setItem(new Banana()); Banana item2=box2.getItem(); } }
FruitBox<?>안에 ?에 들어갈 것으로 외부 Apple, Bnana, Orange class를 넣었고, 그 아이템을 사용하여 메소드를 호출할 수 있다.
package test.main; import test.mypac.Apple; import test.mypac.Banana; import test.mypac.FruitBox; import test.mypac.Orange; public class MainClass02 { public static void main(String[] args) { // 객체를 생성할 때 Generic 클래스는 생략이 가능하다. FruitBox<Apple> box1=new FruitBox<>(); FruitBox<Banana> box2=new FruitBox<>(); FruitBox<Orange> box3=new FruitBox<>(); } }
'Java' 카테고리의 다른 글
자바 step12 - UtilClass(ArrayList 객체) - 2 (0) 2022.11.08 자바 step12 - UtilClass(ArrayList 객체) (0) 2022.11.07 자바 step10 - interface(@FunctionalInterface) 함수 모양으로 사용할 인터페이스에 붙이는 어노테이션 (0) 2022.11.06 자바 step10 - interface(자바의 람다함수, override) (0) 2022.11.06 자바 step10 - interface(implements, orverride, final 예약어) (0) 2022.11.06