코린이의 소소한 공부노트

래퍼 클래스, 넘버 클래스 본문

Java

래퍼 클래스, 넘버 클래스

무지맘 2022. 10. 11. 11:39

[래퍼 클래스]

- 기본형을 감싸는 클래스

- 기본형을 객체로 다뤄야 할 때 사용하는 클래스

public final class Integer extends Number implements Comparable{ // 클래스 안에
    // ...
    private int value; // 기본형이 들어 있다.
    // ...
}

 

1. Boolean 클래스

- 기본형: boolean

- 생성자: Boolean(boolean value), Boolean(String s)

Boolean b1 = new Boolean(true);
Boolean b2 = new Boolean("true");

 

2. Character 클래스

- 기본형: char

- 생성자: Character(char value)

Character c = new Character('a');

 

3. Byte 클래스

- 기본형: byte

- 생성자: Byte(byte value), Byte(String s)

Byte b1 = new Byte((byte)10);
Byte b2 = new Byte("10");

 

4. Short 클래스

- 기본형: short

- 생성자: Short(short value), Short(String s)

Short s1 = new Short((short)10);
Short s2 = new Short("10");

 

5. Integer 클래스

- 기본형: int

- 생성자: Integer(int value), Integer(String s)

Integer i1 = new Integer(10);
Integer i2 = new Integer("10");

 

6. Long 클래스

- 기본형: long

- 생성자: Long(long value), Long(String s)

Long l1 = new Long(10);
Long l2 = new Long("10");

 

7. Float 클래스

- 기본형: float

- 생성자: Float(double value), Float(float value), Float(String s)

Float f1 = new Float(1.0);
Float f2 = new Float(1.0f);
Float f3 = new Float("1.0");

 

8. Double 클래스

- 기본형: double

- 생성자: Double(double value), Double(String s)

Double d1 = new Double(1.0);
Double d2 = new Double("1.0");

 

[넘버 클래스]

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

- 넘버 클래스의 자손 클래스: Byte, Short, Integer, Long, Float, Double, BigInteger(아주 큰 정수), BigDecimal(아주 큰 실수)

- 래퍼 객체의 값을 기본형으로 변환해주는 메서드들이 있음

public abstract class Number extends Object 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();
    }
}

 

[쿠키글] OO is deprecated since version 9

위 코드들을 쓰면 이런 메시지가 뜨면서 생성자에 줄이 처진다.

자바는 객체지향 언어라서 다뤄지는 것의 90%가 객체다. 나머지는 기본형이라고 보면 된다.

객체지향 언어인데도 기본형을 쓰는 이유는 성능 때문이다. 참조형 변수는 저장된 주소 값을 따라가서 해당 주소에 있는 값을 읽어오는데 비해 기본형은 저장된 값을 바로 읽어오면 되기 때문에 성능 차이가 발생한다. 그래서 특별한 경우가 아니고서는 기본형은 래퍼 클래스를 이용하지 않고 그냥 기본형으로 쓴다.

기본형 변수를 객체로 다루는 비중이 줄어듦에 따라 생성자도 없어질 수 있다는 뜻으로 deprecated라는 단어를 사용한다. 우리는 늘 하던 대로 기본형은 기본형으로 대해주면 된다.

'Java' 카테고리의 다른 글

캘린더 클래스  (0) 2022.10.12
문자열의 여러 가지 변환, 오토박싱, 언박싱  (0) 2022.10.11
StringBuilder 클래스  (0) 2022.08.24
Math 클래스  (0) 2022.08.24
StringBuffer 클래스  (0) 2022.08.18