ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Wrapper클래스란?
    Java/자바의정석 2023. 2. 22. 23:41
    반응형

    Wrapper클래스란?

    기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다.
    기본 자료 타입 래퍼 클래스
    boolean Boolean
    char Character
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    기본자료타입에는 위의 표와같이 8개의 타입이있다. 래퍼클래스를 사용할때는 
    char, int를 제외한경우 앞글자를 대문자로 해주기만하면 끝이난다.
     

    객체지향언어인데 모든것이 객체가 아니다?

    라는 질문에 대응하기위한 클래스가 아닐까 싶다. 

    왜 기본형이라는 예외를 두었는지의 원인은 성능때문이라고한다.

    참조형의 경우 값을 읽어올때 참조형 주소를 읽고 그 주소를 통해서만 값을 읽어와야하기 때문이라고한다.

     

     

    아래의 코드를 통해 확인해보자. 

    class Ex9_14 {
        public static void main(String[] args) {
            Integer i  = new Integer(100);
            Integer i2 = new Integer(100);
    
            System.out.println("i==i2 ? "+(i==i2)); 
            System.out.println("i.equals(i2) ? "+i.equals(i2)); 
            System.out.println("i.compareTo(i2)="+i.compareTo(i2));
            System.out.println("i.toString()="+i.toString()); 
    
            System.out.println("MAX_VALUE="+Integer.MAX_VALUE);
            System.out.println("MIN_VALUE="+Integer.MIN_VALUE); 
            System.out.println("SIZE="+Integer.SIZE+" bits"); 
            System.out.println("BYTES="+Integer.BYTES+" bytes"); 
            System.out.println("TYPE="+Integer.TYPE); //int
        }
    }

    =============실행결과==============

    i==i2 ? false
    i.equals(i2) ? true
    i.compareTo(i2)=0
    i.toString()=100
    MAX_VALUE=2147483647
    MIN_VALUE=-2147483648
    SIZE=32 bits
    BYTES=4 bytes
    TYPE=int


    Integer i  = new Integer(100);
    Integer i2 = new Integer(100);
    
    System.out.println("i==i2 ? "+(i==i2)); 

    i == i2 의 결과는 false이다.  Integer를 통하여 객체로 생성하였기 때문에 각각 참조하고있는 주소가 다르기 때문이다.

     

    System.out.println("i.equals(i2) ? "+i.equals(i2));

    equals를 사용한다면 true를 반환한다.  오버라이딩이 되어있기 때문에 넘겨받은 인자값을 비교하기 때문이다.

     

     

    compareTo()

    System.out.println("i.compareTo(i2)="+i.compareTo(i2));

    compareTo()  : 같으면 0 , 오른쪽이 작으면 양수, 오른쪽이 크면 음수를 반환 (정렬에 주로 사용)

    해당코드에서는 i.compareTo(i2) : 같기 때문에 0을 반환

    100 == 100

     

    MIN,MAX

    System.out.println("MAX_VALUE="+Integer.MAX_VALUE); 
    System.out.println("MIN_VALUE="+Integer.MIN_VALUE);

    MIN,MAX의 경우는 최대값 최소값을 반환한다. +20억 / -20억을 반환한다.

     

     

    System.out.println("SIZE="+Integer.SIZE+" bits"); 
    System.out.println("BYTES="+Integer.BYTES+" bytes"); 
    System.out.println("TYPE="+Integer.TYPE); 

    SIZE : 32비트

    BYTE : 4바이트

    TYPE: int

     

    Integer클래스를 대표로 몇가지 예시를 두고 알아보았다.

    Integer를 제외한 나머지 클래스도 대부분 다 비슷하니 동일하게 사용해도 무방할것이다.

    반응형

    댓글

Designed by Tistory.