IT 수업 12주차 (37) Generic 1
● Generic
데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 테이터 타입들을 가질 수 있도록 하는 방법이다.
즉, 제네릭은 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미한다. 한마디로 특정 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic) 타입이라는 것이다.
사용 할 땐 <> 괄호 안에 들어가는 타입을 지정해주면 된다.
● Generic 장점
1. 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방질 할 수 있다.
2. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 관리가 편하다는 것이다.
3. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다.
● Generic type
<T> : Type
<E> : Element
<K> : Key
<V> : Value
<N> : Number
- 예제 1
먼저 호빵의 클래스를 만들 어준다.
제네릭 타입은 T로 해준다.(<T>)
그리고 호빵에 들어가는 재료들의 클래스르 만들어 준다.
마우스 우클릭으로 source에 들어가 toString을 클릭에 제네레이트 해준다.
그리고 호빵재료들의 정보를 확인해본다.
T가 해당 재료들로 바뀌게 된다.
< 실행화면 >
나머지 두 재료들도 추가해봤다.
< 실행화면 >
여기에 팥에 단팥이라는 재료를 적어본다.
< 실행화면 >
그러면 이렇게 단팥으로 만든 호빵이라는 결과를 얻을 수 있다.
다음은 class민초 라는 클래스를 만든 뒤
class 재료 라는 상위클래스를 만들어 민초를 제외한 모든 재료들에게 extends를 걸어놨다.
그러면 민초에게는 mismatch라는 오류가 나오게 된다.
이렇게 원하지 않는 객체에는 상속시키지 않고 사용하면 된다.
(결과보려면 민초는 주석처리하거나 없애야 함)
- 예제 2
먼저 클래스를 만들어준다.
여기서 아무 재료가 들어오면 안되기 때문에 상위 클래스를 하나 만들어 extends로 해당 재료들에게만 상속을 걸어준다.
< 실행화면 >