-
제네릭 클래스와 제네릭 메서드란?
=> 클래스마다 여러가지의 자료형을 받을 수 있는데 그때마다 클래스를 변경하면 비효율적이기 때문에 특정 자료형을 지정하지않고 사용하는 시점에 자료형을 만들어서 사용하는 것이다
예를 들어서 Object클래스로 사용할 경우 모든 클래스의 최상위이기 대문에 매번 원형의 형 변환을 해줘야해서 제너릭 클래스를 사용하게 된 것이다.
보통 T등 간단한 알파벳을 사용해서 사용한다.
제네릭 메서드는 이 제네릭 클래스의 T를 메서드의 선언부나 매개변수로 매개변수 자료형 T를 사용하면 제네릭 메서드라고 말한다.
제네릭 클래스의 순서
=>
1. 사용할 클래스를 미리 정의한다.
2. <T> 같은 간단한 클래스명을 사용하여 일단 특정 자료형을 쓰지 않고 어떤 자료형을 쓸지 지정하는 방식이다
3. 특정 클래스 자료형을 사용하고 싶을 때 사용하는 것이다 .
제너릭 클래스와 제네릭 메서드 만들어보기
=>
라면이라는 클래스를 만들어보자.
라면은 볶고 끓인다는 메서드를 넣겠다.
라면의 재료에는 야채와 고기를 넣겠다.
를 만들어보자.
public class Meat{
public void fry(){
System.out.println("Meat 재료를 사용했다.");
}
public String boil(){
return ("Meat을 재료로 사용했다");
}
}
public class Vegetable{
public void fry(){
System.out.println("Vegetable 재료를 사용했다.");
}
public String boil(){
return ("Vegetable을 재료로 사용했다");
}
}
두 개의 클래스를 메서드와 함께 구현했다 .
이제 특정 자료형이 아닌 일반적인 제네릭 클래스를 먼저 구현하자.
public class GenericRamen<T>{
private T material;
public void setMaterial(T material){
this.material = material;
}
public T getMaterial() {
return material;
}
public String toString(){
return material.toString();
}
}
제네릭 클래스로 정의한 후에 메인 함수를 불러서 특정 자료형을 사용하자.
Meat와 Vegetable이라는 특정 자료형을 참조 자료형으로 사용하였다 .
public class GenericRamen{
public static void main(String[] args){
GenericRamen<Meat> RamenMeat = new GenericRamen<Meat>();
RamenMeat.setMaterial(new Meat());
Meat meat = RamenMeat.getMaterial();
System.out.println(RamenMeat);
GenericRamen<Vegetable> RamenVegetable = new GenericRamen<vegetable>();
RamenVegetable.setMaterial(new Vegetable());
Vegetable vegetable = RamenVegetable.getMaterial();
System.out.println(RamenVegetable);
}
}
라고 정의하면
Meat을 재료로 사용했다
Vegetable 재료를 사용했다.가 출력된다.
'자바 > 자바 키포인트' 카테고리의 다른 글
[자바] final 제어자의 의미와 final 상수 메모리의 정확한 정의 이해하기 (0) 2023.02.11 [자바] Treeset의 정의와 기준을 잡아주는 comparable 인터페이스와 comparator 인터페이스의 예시문 만들기 (0) 2023.01.05 [자바] ArrayList 배열을 사용하여 간단한 학생 성적 프로그램 만드는 연습하기 (0) 2023.01.03 [자바] 상위 클래스와 하위 클래스 간의 상속과 메서드 다형성 예제 만들어보기 (0) 2022.12.28 [자바] 클라이언트와 서버와의 양방향 연결 방식 예시문 정리하기 (0) 2022.12.18 댓글