Notice
Recent Posts
Recent Comments
관리 메뉴

Developer Gonie

[4주차] 65. 제네릭 타입 및 제네릭 메소드* 본문

K-DigitalTraining 강의/1. Java

[4주차] 65. 제네릭 타입 및 제네릭 메소드*

이대곤 2022. 6. 2. 12:25

* 제네릭(Generic) 타입이란?

  '제네릭 타입'은 타입을 파라미터로 가지는 클래스와 인터페이스를 말한다.

 

* 제네릭 메소드란?

  '제네릭 메소드'는 매개 타입과 리턴 타입으로 타입 파라미터를 갖는 메소드를 말한다.

 

* 제네릭 사용시 주의할 점 

  주의할 점으로 구체적인 자료형을 지정할 땐 < > 안에 클래스 이름을 기입해줘야 하는데
  기본자료형의 경우 레퍼클래스의 이름을 넣어줘야 한다.

  ex) int 자료형의 경우 -> <Integer>

 

API 도큐먼트를 보면 제네릭 표현이 많기 때문에 이를 이해하지 못하면 API 도큐먼트를 정확히 이해할 수 없다. 
또한, 제네릭을 사용하면 코드의 재사용성을 높일 수 있어 효율적이다. 이것 말고도 장점이 있는데 지금은 이 정도만 이해하자.
구체적인 타입은 객체를 생성할 때 지정한다.

코드

//class Top{
//	private int date;
//
//	public void setDate(int date) {
//		this.date = date;
//	}
//	
//	public int getDate() {
//		return this.date; 
//	}
//}// Top

// 정수도받고 실수도받고 문자열도 받는 클래스를 재사용성 높게 만들고 싶을 때
// 클래스명뒤에 <> 를 넣어 아직 확정되지 않은 자료형이 있음을 알림 -> 이런형태를 '제네릭'이라고 함.
class Top<T>{
	private T date;

	public void setDate(T date) {
		this.date = date;
	}
	
	public T getDate() {
		return this.date; 
	}
}//Top

public class Ex09_01_Generic {
	public static void main(String[] args) {
	
		Top<String> t1 = new Top<String>(); // <>에 자료형을 넣어 자료형을 확정시킴
		t1.setDate("orange");
		String result1 = t1.getDate();
		System.out.println(result1);
        
		// 제네릭은 자료형을 지정할 때 기본 자료형은 클래스를 사용해야해서 int 대신 래퍼클래스 이름을 넣어줌.
		Top<Integer> t2 = new Top<Integer>(); 
		t2.setDate(300); // 오토박싱이 이뤄져 t3.setDate(new Integer(300)) 과 같음 
		int result2 = t2.getDate();
		System.out.println(result2);
	}
}

실행결과

orange
300
Comments