오전 12:57 2025-01-21

추가 필요

더보기

 generic
 제네릭은 모든 알파벳으로 지정할 수 있다
 관습적으로 많이 사용하는 키워드
 E: Element, 배열기반 구조에서 요소를 의미
 T : 일반적인 Type
 K : Key
 V : Value

 <k, v> : 제네릭은 여러 개 지정할 수 있다.</k, v>
  : T를 구현 또는 상속하고 있는 타입이 제네릭으로 지정되어야 함
  : T의 부모 또는 선조 타입 이어야 한다

 

 

 

Generic

  • Java에서 제네릭(generic)이란 데이터의 타입을 일반화하는 것을 의미함
    • 하나의 클래스에서 다양한 매개 자료형을 사용하고 싶은 경우에 사용함
    • Template 자료 형태 (자료형 변수)
  • 형식은 <자료형>
    • <> 사이에는 반드시 Class가 들어가야 한다.
    • 예시로, 정수형을 사용하고 싶다면 <int> - 불가, <Integer> - 가능
    • int는 일반 자료형이고, Integer는 Wrapper Class이기 때문이다.
  • 모든 클래스를 제네릭으로 선언할 수 있다.

 

(참고) int와 Integer의 차이

Wrapper Class에 대해서 언급한 적이 있다.

2024.12.30 - [Java/Java 문법] - Java 기본 문법 - Wrapper Class, String 메소드, 진수 변환

 

Java 기본 문법 - Wrapper Class, String 메소드, 진수 변환

public class MainClass { public static void main(String[] args) { /* wrapper class 일반 자료형(int, char, double...)을 클래스(기능추가)화 해 놓은 것 일반자료형 wrapper class byte Byte short Short int Integer long Long float Float dou

kungfugay.tistory.com

 

더보기

1. 기본형 vs. 참조형
int: Java의 기본 데이터 타입 중 하나로, 32비트 정수를 나타냅니다. 메모리에 직접 값을 저장합니다.
Integer: Java의 래퍼 클래스(Wrapper Class)로, 기본형 int를 객체로 감싸는 역할을 합니다. 객체이기 때문에 메모리에 참조가 저장됩니다.


2. null 값
int: 기본형이므로 null 값을 가질 수 없습니다. 항상 초기화되어야 하며 0이라는 기본값을 가집니다.
Integer: 객체이므로 null 값을 가질 수 있습니다. 이를 통해 값이 없음을 표현할 수 있습니다.


3. 사용 용도
int: 성능이 중요하고, 단순한 수치 연산이 필요할 때 사용합니다.
Integer: 컬렉션(예: ArrayList)과 같은 객체를 필요로 하는 곳에서 사용됩니다. 또한, 객체로서 메서드를 호출할 수 있습니다.

 

코드 예시

Class를 생성할 때 클래스명 옆에 <T> 라고 적어준다..

// T는 커스터마이징임. A, Area, 아무거나 써도 됨
class Box<T> {
    T temp;
    public Box (T temp) {
        this.temp = temp;
    }

    public T getTemp() {
        return temp;
    }

    public void setTemp(T temp) {
        this.temp = temp;
    }
}

 

제네릭 타입의 클래스 객체를 참조하는 인스턴스를 생성할 때

클래스명<자료형> 변수명 = new 클래스명<>(파라미터);

    // 메인함수
    Box<Integer> iBox = new Box<>(123);
    System.out.println(iBox.getTemp());

출력 결과

+ Recent posts