가자공부하러!

Java_3_제네릭(Generic) 본문

공부/Java

Java_3_제네릭(Generic)

오피스엑소더스 2019. 5. 14. 17:30

제네릭 : 클래스 내부에서 사용 할 자료형을 객체 외부에서 정하는 기법.

제네릭을 사용하는 이유 : 

 > 타입 안정성 : 미리 정한 타입의 자료만 받기 때문에 자료형을 엄격히 제한할 수 있음

제네릭의 특성 : 

 > 복수의 제네릭을 활용 가능

 > 제네릭 생략 가능 (이미 선언된 변수의 자료형을 알 수 있는 경우)

 > 메소드에 적용 가능 

제네릭의 제한 (extends): 

 > 제네릭으로 올 수 있는 데이터 타입을 특정 클래스의 자식으로 제한할 수 있다.

 

제네릭 연습 코드

GenTest.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package test;
public class GenTest<T> {    
    //이 클래스로 객체를 생성할 때 객체가 받아올 자료형을 정할 수 있다.
    //꺽쇠(<,>)사이 T자리에 자료형을 입력해서 객체를 생성하면 해당 객체는 입력된 자료형만 저장한다.
    //ex) GenTest<Integer> == 이 객체는 정수만 저장한다.
    private T a;    
    //정한 타입의 변수가 선언된다. 정수, 문자열 등
    void setData(T aa){
        a=aa;
        //인수로 자료형을 받고 aa인수로 자료형에 맞는 값을 받아서 변수a에 저장한다.
        //변수 a의 자료형은 T가 되고 값은 aa로 설정된다.
    }
    T getData() {
        return a;
    }
}
 
cs

 MainClass.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package test;
public class mainClass {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("Hello Generic!");
        GenTest<Integer> num = new GenTest<Integer>();
        //num객체에 저장할 수 있는 자료형은 int
        GenTest<String> str = new GenTest<String>();
        //String 객체에 저장할 수 있는 자료형은 String
        num.setData(300);
        str.setData("ggggg");
        System.out.println(num.getData());
        System.out.println(str.getData());
    }
}
 
cs


 

참고 웹사이트 : 생활코딩(https://opentutorials.org/module/516/6237)





맨 위로




















'공부 > Java' 카테고리의 다른 글

Java_5_람다식(Lambda Expressions)  (0) 2019.05.17
Java_4_Stream(스트림)  (0) 2019.05.17
신나는 별찍기 공부  (0) 2019.05.16
Java_2_반복문과 Scanner 활용  (0) 2019.02.27
Java_1_Java(자바) 설치  (0) 2019.02.27
Comments