본문 바로가기

Java

제너릭 프로그래밍

반응형

제너릭 프로그래밍 =: 템플릿 프로그래밍.

제너릭 클래스

public class Generic<T>

{

private T material;

 

}

 

1) 제너릭 타입만 정해진다고 new가 되는 것이 아니고 해당 타입으로 정해준 후에 set을 해줘야 함

2) 제너릭 클래스 타입을 한정짓고 싶으면 상위 클래스를 만들어서 그것을 상속하는 클래스들만 타입으로 할 수 있도록 설정함.

3) 상위 클래스를 추상클래스로 만들고 추상메소드를 만들면 상위 클래스를 상속받는 클래스들이 구현하게 되므로 그 클래스들을 제너릭 타입으로 쓰는 클래스에서는 해당 타입 객체 인스턴스를 이용해서 여러 함수를 사용가능.

public class Generic <T extends Material>{ 

//T로 들어올 수 있는 객체중에 Material을 상속받은 객체만 들어올 수 있음.  


private <T> material;

public <T> getMaterial() {
return material;
}

public void setMaterial(<T> material) {
this.material = material;
}

@Override
public String toString()
{
return material.toString();
}

public void print()
{
material.doPrint();  //이것을 제너릭 타입으로 받는 클래스에서 사용 가능.
}
}

 

----------------------------------------------------------

public abstract class Material {

public abstract void doPrint(); //상위 클래스에서 추상 클래스를 만들어 놓음으로

}

----------------------------------------------------------

public class Plastic extends Material {  //Plastic은 Material 을 상속 받고

public String str;

@Override
public String toString()
{
return "저는 플라스틱 입니다";
}

@Override
public void doPrint() {  //여기서 구현해야 하고
// TODO Auto-generated method stub
System.out.println("플라스틱으로 프린트");

}

}

 

----------------------------------------------------------

public class Str {



public static void main(String[] args)
{
Generic p = new Generic();
Plastic pla = new Plastic(); // 여기서 Plastic객체를 생성해서 Plastic Material 이 된 클래스 변수에 set을 해줘야 함.
p.setMaterial(pla);
System.out.println(p);


p.print();

}
}

 

 

제너릭 타입 여러개 사용가능

public class Hi<T,V>

{ T material;

V material2; }

제너릭 타입을 지정 안하면 object 타입으로 들어감.

반응형

'Java' 카테고리의 다른 글

Set 인터페이스  (0) 2019.11.03
Stack , Queue  (0) 2019.10.30
Collection 인터페이스  (0) 2019.10.30
String 객체  (0) 2019.10.30
Clone 메소드  (0) 2019.10.29