728x90
제네릭 클래스
제네릭 프로그래밍이란 일반적인 코드를 작성하고 이 코드를 다양한 타입의 객체에 대하여 재사용하는 객체지향 (OOP)기법이다. 원하는 타입의 객체만 받아들이기 위한 방법으로 볼 수 있다. 결국 하나의 메소드에서 여러 가지 타입을 한 번에 다 지원 하는 클래스가 제네릭 클래스라 할 수 있다.
예를 들어 클래스 하나 만들고, 내부 메서드에서 INT 만 아니라 원하는 자료형(객체) 타입 String이나 char 등을 다양하게 지원하고 싶을 때 사용한다고 볼 수 있다.
제네릭을 사용하는 이유
제네릭 타입을 사용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있다. 자바 컴파일러는 코드에서 잘못 사용된 타입 때문에 발생하는 문제점을 제거하기 위해 제네릭 코드에 대해 강한 타입 체크한다.
실행 시 타입 에러가 나는것보다는 컴파일 시에 미리 타입을 강하게 체크해서 에러를 사전에 방지할 수 있다.
또 제네릭 코드를 사용하면 타입을 국한하기 떄문에 요소를 찾아올 때 타입 변환을 할 필요가 없어 프로그램 성능이 향상된다.
제네릭 사용법
public class 클래스명<T> {...}
public interface 인터페이스명<T> {...}
타입인자 | 설명 |
<T> | Type |
<E> | Element |
<K> | Key |
<N> | Number |
<V> | Value |
<R> | Result |
예제 1)
더보기
package Java09;
class Gen {
/* 제네릭 타입인 것은 Class_aud이나 Method_명 두 곳중 한 곳에 써주면 되는데
메써드를 제너릭 타입으로 한다면 Method_명에 T 를 붙이는 것이 좋다.*/
public <T> void printArr(T arr[]) { // 이제부터 배열에 들어가는 데이터 타입이 엄격해짐
// public <T> void printArr(T[] arr)
// printArr(T[] arr)도 가능
for (int i = 0; i<arr.length; i++) {
System.out.print(" " + arr[i]);
}
System.out.println();
}
}
public class Test03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Gen gen = new Gen();
Integer[] iArr = {1, 2, 3, 4, 5};
Double[] dArr = {1.1, 2.2, 3.3, 4.4, 5.5};
Character[] cArr = {'A','B','C','D','E'};
String[] sArr = {"I","am","Groot,","I","am","Groot"};
gen.printArr(iArr);
gen.printArr(dArr);
gen.printArr(cArr);
gen.printArr(sArr);
}
}
'일단 해보는 코딩 > Java' 카테고리의 다른 글
[Java] 인터페이스(Interface), 내부클래스의 종류, 접근제한자 (0) | 2022.07.29 |
---|---|
[Java] 추상 메서드(abstract method) (0) | 2022.07.28 |
[Java] 접근제한자, 상속, 오버라이딩 예제 모음 (0) | 2022.07.27 |
[Java] 함수(메써드) 호출 방식 (0) | 2022.07.26 |
[Java] Break/Continue 문 (0) | 2022.07.25 |