IT수업/JAVA PART2

IT 수업 12주차 (37) Generic 1

워제하 2024. 3. 13. 13:21

● 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로 해당 재료들에게만 상속을 걸어준다.

 

 

 

< 실행화면 >

 

 

 

 

 

 

 

 

 

참고 : https://st-lab.tistory.com/153