Notice
Recent Posts
Recent Comments
Link
drexqq
[Java, 자바]Generic(제네릭) 본문
728x90
반응형
Java의 Generic(제네릭)에 대해서 알아보자.
Generic == template 자료형의 변수라고 생각할 수 있다.
Generic은 간단하게 '같은 클래스'에서 '여러 가지 자료형'을 사용할 경우에 사용된다
package main;
public class mainClass {
public static void main(String[] args) {
Box<Integer> box = new Box<Integer>(123);
System.out.println(box.getTemp()+1);
Box<String> sBox = new Box<String>("my world");
System.out.println(sBox.getTemp());
BoxMap<Integer, String> bMap = new BoxMap<Integer, String>(1001, "hello");
System.out.println(bMap.getKey()+", "+bMap.getValue());
}
}
class Box<T> { // <사용자 임의지정> = Generic,
T temp;
public Box(T temp) {
this.temp = temp;
}
public T getTemp() {
return temp;
}
public void setTemp(T temp) {
this.temp = temp;
}
}
class BoxMap<Key, Value>{
Key key;
Value value;
public BoxMap(Key key, Value value) {
super();
this.key = key;
this.value = value;
}
public Key getKey() {
return key;
}
public void setKey(Key key) {
this.key = key;
}
public Value getValue() {
return value;
}
public void setValue(Value value) {
this.value = value;
}
}
위 예제를 보면 알 수 있듯이 클래스명 뒤에 <> 안에 있는 값들을 파라미터로 사용할 수 있다.
들어가는 값은 자료형과 오브젝트를 많이 사용한다.
또한 파라미터로 받을 수 있는 값은 하나만 받을 수 있는 게 아니라 다수의 값을 한 번에 받을 수 있다.
아래는 파라미터명으로 자주 쓰이는 이름이다.
E - Element
K - Key
N - Number
T - Type
V - Value
728x90
반응형
'Back-End > Java' 카테고리의 다른 글
[Java, 자바] Abstract (0) | 2020.06.09 |
---|---|
[Java, 자바] ArrayList (0) | 2020.06.08 |
[Java, 자바] static (0) | 2020.06.03 |
[Java, 자바] final (0) | 2020.06.03 |
[Java, 자바] Overriding(오버라이딩) (0) | 2020.06.03 |
Comments