본문 바로가기
Java/기초

[java기초] 제네릭 프로그래밍

by Meaning_ 2021. 7. 2.
728x90
반응형

<제네릭 타입의 필요성>

 

- 자바는 다양한 종류의 객체를 관리하는 컬렉션이라는 자료구조 제공

- 초기에는 Object 타입의 컬렉션 사용

- Object 타입의 컬렉션은 클래스에 어떠한 객체를 담았는지 알 수 없음.

 

<제네릭 타입의 의미>

- 하나의 코드를 다양한 타입의 객체에 재사용 하는 객체 지향 기법

- 클래스, 인터페이스, 메서드를 정의할 때 타입을 변수로 사용

 

<제네릭 타입의 장점>

 

- 컴파일할 때 타입을 점검하기 때문에 실행도중 발생할 오류 사전 방지

- 불필요한 타입 변환이 없어 프로그램 성능 향상 

 

<제네릭 타입 선언>

 

class 클래스 이름 <타입매개변수>{

//필드

//메서드

}

 

타입 매개변수

 

타입 매개변수 설명
E 원소
K
N 숫자
T 타입
V

 

<자료형 매개변수 T>

 

- type의 의미로 T를 사용함

- <T>에서 <>는 다이아몬드 연산자라고 함

- static 키워드는 T에  쓸 수 없다.

 

- ArrayList<String> list=new ArrayList<>();

다이아몬드 연산자 내부에서 자료형은 생략 가능함.

 

 

제네릭 객체 생성

 

제네릭 클래스 <적용할 타입> 변수 = new 제네릭 클래스<적용할 타입> ();

 

<제네릭 타입 한정>

 

<T extends 특정 클래스> 반환타입 메서드이름 {}

 

<제너릭 메서드>

 

- 타입 매개변수를 사용하는 메서드

- 제너릭 클래스 뿐만 아니라 일반 클래스의 멤버도 될 수 있음

- 제너릭 메서드를 정의할 때는 타입 매개변수를 반환 타입 앞에 위치

 

<타입 매개변수> 반환타입 메서드이름(...) {

 

}

 

* 2개 이상의 타입 매개변수도 가능

 

- 제너릭 메서드 호출할 때는 구체적인 타입 생략가능

 

 

 

728x90
반응형

'Java > 기초' 카테고리의 다른 글

[java기초] 기본패키지  (0) 2021.07.05
[java 기초] 제네릭과 컬렉션  (0) 2021.07.04
[java기초] 모듈과 기본패키지  (0) 2021.07.02
[java기초] 패키지  (0) 2021.07.02
[java 기초] 인터페이스와 다형성  (0) 2021.06.30

댓글