[Java 07] 매개 변수화 타입(Parameterized Type)

매개 변수화 타입

- 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)한 것이다.

 

 


✔️ 참고

 

자바로 구현하고 배우는 자료구조

부스트코스 무료 강의

www.boostcourse.org

 

'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