/ JAVAJUNGSUK

Ch9-25~27. wrapper 클래스

자바의 정석 기초편

0. 목차



Chapter9. java.lang 패키지와 유용한 클래스

Ch9 - 25. 래퍼(wrapper) 클래스

Ch9 - 26. 래퍼(wrapper) 클래스 예제

Ch9 - 27. Number 클래스



Ch9 - 25. 래퍼(wrapper) 클래스


▶ 래퍼(wrapper) 클래스란?

▷ 기본형 값을 감싸는 클래스
▷ 8개의 기본형을 객체로 다뤄야 할 때 사용하는 클래스
  • Integer code
      public final class Integer extends Number implements Comparable {
          ...
          private int value; // Integer가 int(기본형)를 감싸고 있음
          ...
      }
    

▶ 기본형이 나오게 된 배경

▷ 객체지향언어 : 모두 객체가 되는 걸 지향
▷ 근데 기본형은 객체가 아님
▷ 왜? 성능 문제 때문


▶ boolean 래퍼 클래스

▷ Boolean
  • Boolean(boolean value)
  • Boolean(String s)
      Boolean b1 = new Boolean(true)
      Boolean b2 = new Boolean("true")
    


▶ char 래퍼 클래스

▷ Character
  • Character(char value)
      Character c = new Character('a')
    


▶ byte 래퍼 클래스

▷ Byte
  • Byte(byte value)
  • Byte(String s)
    Byte b1 = new Byte(10)
    Byte b2 = new Byte("10")
    


▶ short 래퍼 클래스

▷ Short
  • Short(boolean value)
  • Short(String s)
    Short b1 = new Short(10)
    Short b2 = new Short("10")
    


▶ int 래퍼 클래스

▷ Integer
  • Integer(int value)
  • Integer(String s)
    Integer i1 = new Integer(100)
    Integer b2 = new Integer("100")
    


▶ long 래퍼 클래스

▷ Long
  • Long(long value)
  • Long(String s)
    Long b1 = new Long(100)
    Long b2 = new Long("100")
    


▶ float 래퍼 클래스

▷ Float
  • Float(double value)
  • Float(float value)
  • Float(String s)
    Float f1 = new Float(1.0)
    Float f2 = new Float(1.0f)
    Float f2 = new Float("1.0f")
    


▶ double 래퍼 클래스

▷ Double
  • Double(double value)
  • Double(String s)
    Double b1 = new Double(1.0)
    Double b2 = new Double("1.0")
    




Ch9 - 26. 래퍼(wrapper) 클래스 예제


▶ Integer i = new Integer();

▷ ==
Integer i1  = new Integer(100);
Integer i2 = new Integer(100);

System.out.println(i1==i2);

// console
false
i1@0x100  100
i2@0x200  100

0x100  0x200
▷ equals()
Integer i1  = new Integer(100);
Integer i2 = new Integer(100);

System.out.println(i1.equals(i2));

// console
true
i1@0x100  100
i2@0x200  100

100  100
▷ equals()
Integer i1  = new Integer(100);
Integer i2 = new Integer(100);

System.out.println(i1.equals(i2));

// console
true
i1@0x100  100
i2@0x200  100

100 = 100
▷ compareTo()
Integer i1  = new Integer(100);
Integer i2 = new Integer(100);

System.out.println(i1.compareTo(i2));

// console
0
i1@0x100  100
i2@0x200  100

100 = 100
  • compareTo()
    • i1 = i2 → 0
    • i1 > i2 → + 양수
    • i1 < i2 → - 음수
▷ toString()
Integer i1  = new Integer(100);
Integer i2 = new Integer(100);

System.out.println(i1.toString(i2));

// console
"100"
int 100 -to String "100"
▷ …
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);

// console
MAX_VALUE : 2147483647
MIN_VALUE : -2147483648
SIZE : 32 bits
BYTES : 4 bytes
TYPE : int



Ch9 - 27. Number 클래스


▶ Number 클래스란?

▷ 모든 숫자 래퍼 클래스의 조상


  • Numer class code
    public abstract class Number implements java.io.Serializable { // 추상 클래스
    public abstract int intValue(); 
    public abstract long longValue(); 
    public abstract float floatValue(); 
    public abstract double doubleValue(); 
    
    public byte byteValue() {
      return (byte)intValue();
    }
    
    public short shortValue() {
      return (short)intValue();
    }
    }
    

    래퍼 객체 → 기본형 역할을 하는 메서드를 가진 Number 클래스

ex) new Integer(100) → int 100?
intValue() 사용