매개 변수화 타입
- Generic Programming을 구현하기 위한 방법
- 꺾쇠괄호 <> 안에 Type Parameter를 넣어 컴파일 시 구체적인 타입이 결정되도록 하는 방법
- 매개 변수화 타입을 사용하기 위해 클래스, 메서드를 정의할 때 아래 코드의 2번처럼 바꿔야 함.
→ 다만, 생성자의 경우 예외적으로 E를 사용하지 않음.
// class
public class LinkedList {}
public class LinkedLilst<E> {} // 2
// method
public void addFirst(String S) {}
public void addFirst(E obj) {} // 2
public String removeFirst() {}
public E removeFirst() {} // 2
< 클래스를 정의할 때 >
- Java에게 매개변수화 타입을 사용할 거라고 알려줘야 함.
- E : 제네릭 타입, 클래스 안에서 사용
- Monkey, Student, String 모두 E가 됨.
생성자
- E를 사용하지 않는 유일하게 예외적인 상황
- 아래 코드는 매개변수화 타입을 사용한 Generic Node → E는 모두 같은 자료형을 의미
class Node<E> {
E data;
Node<E> next; // 현재 클래스와 같은 종류의 것을 가리키도록 만듦.
public Node(E obj){ // 이 생성자는 하나의 인자만 받는다.
dat = obj;
next = null;
}
}
Container & Implements & Data
- 컨테이너에 우리가 사용할 스택이나 이진트리나 큐나 리스트 같은 것들을 먼저 넣어줌.
- Implements - 컨테이너에 담긴 것을 실제 구현(implements) 코드를 분리
- Data - 실제 데이터와도 분리
- 예) LinkedList는 List 인터페이스(컨테이너)를 구현(implements)한 것이다.
✔️ 참고
'Java' 카테고리의 다른 글
[Java 09] 예외(Exception) (0) | 2023.08.09 |
---|---|
[Java 08] Autoboxing - primitive type & Wrapper class (0) | 2023.08.09 |
[Java 06] Generic Programming (0) | 2023.08.09 |
[Java 05] 객체 비교 - equals(), Comparable (0) | 2023.08.09 |
[Java 04] 객체와 상속 (0) | 2023.08.08 |