래퍼 클래스

Java의 데이터 타입과 예외

Jim White

Java Developer

Java의 8가지 기본형

8가지 Java 기본형은 모든 데이터의 기반이 되는 타입입니다.

Java의 데이터 타입과 예외

래퍼 클래스

  • 각 기본형에는 대응하는 래퍼 클래스가 있습니다.
primitive Wrapper Class
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

래퍼 클래스는 기본형을 객체처럼 다룰 수 있게 해줍니다. 래퍼 클래스는 Object의 하위 클래스입니다.

Java의 데이터 타입과 예외

기본형 감싸기

  • 래퍼 클래스의 인스턴스는 단일 기본형 값을 가집니다.
    • 예: Integer는 하나의 int 값을 가집니다.

래퍼 객체는 기본형을 값으로 포함합니다

Java의 데이터 타입과 예외

래퍼 상세

  • 래퍼 클래스에는 추가 필드와 메서드가 있습니다.
    • 타입의 정보(예: 최댓값)
    • 해당 기본형을 다루는 메서드
  • 래퍼 클래스는 기본 패키지에 있음
    • import 없이 사용 가능(자세한 내용은 이후에)
Java의 데이터 타입과 예외

래퍼 객체 만들기

  • 기본형 값을 래퍼 타입 변수에 대입
    • 구문: Wrapper-type variable = primitive-value;
Integer age = 12;
Double cost = 150250.55;
Float interest = 5.5f;
Character grade = 'A';
Boolean isActive = true;
  • 래퍼 객체는 값이 없을 수도 있음(null)
Integer age = null;
Java의 데이터 타입과 예외

래퍼 객체 사용하기

Integer age = 12;
  • 출력하기
    System.out.println(age);    // 12 출력
    
  • 기본형 값 얻기
    int x = age.intValue();     // x에 12 대입
    
  • 기타 작업 수행
    double z = age.doubleValue();  // z는 12.0
    String y = age.toString();  // y는 "12"
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // 12 < 16이므로 smaller는 -1
    
Java의 데이터 타입과 예외

래퍼 정적 메서드

  • 래퍼 클래스에는 정적 메서드가 있습니다.
  • 해당 기본형에 대한 연산에 사용
    int x = Integer.sum(8,12);  // x는 20
    int y = Integer.remainderUnsigned(102, 10);  // y는 2
    
  • String과 기본형 간 변환에 사용
    int z = Integer.parseInt("123");   // z는 123
    boolean ans = Boolean.parseBoolean("false");  // ans는 false
    
1 자세한 내용: https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html
Java의 데이터 타입과 예외

래퍼 정적 필드

래퍼 클래스의 정적 필드 예시

System.out.println(Integer.MAX_VALUE); // int가 가질 수 있는 최댓값
System.out.println(Integer.MIN_VALUE); // int가 가질 수 있는 최솟값
2147483647
-2147483648
System.out.println(Boolean.TRUE); // 기본형 true에 해당
System.out.println(Boolean.FALSE); // 기본형 false에 해당
true
false
Java의 데이터 타입과 예외

래퍼 정적 필드

래퍼 클래스의 정적 필드 예시

System.out.println(Character.SPACE_SEPARATOR);  // 일반 공백 ' '의 유니코드
System.out.println(Character.LINE_SEPARATOR); // 줄바꿈 '\n'의 유니코드
12
13
Java의 데이터 타입과 예외

유용한 래퍼 메서드

Wrapper Method Returns
Boolean.logicalAnd(boolean a, boolean b) boolean
Boolean.logicalOr(boolean a, boolean b) boolean
Boolean.parseBoolean(String s) boolean
Character.getNumericValue(char ch) 문자의 유니코드 정수값
Character.isDigit(char ch) boolean
Character.isLowerCase(char ch) boolean
Character.isWhitespace(char ch) boolean
Double.parseDouble(String s) double
Double.longValue() Double 값을 내림하여 Long으로 반환
Java의 데이터 타입과 예외

왜 래퍼를 사용할까요?

  • 기본형에는 메서드가 없음(연산만 가능)
    • 래퍼 클래스는 유용한 메서드를 제공
      int score = Integer.parseInt("8");
      
  • 래퍼는 기본형을 객체처럼 사용 가능; 예: 컬렉션에 담기
    • 컬렉션은 2장에서 학습합니다.
Java의 데이터 타입과 예외

래퍼는 null이 될 수 있음

  • 래퍼는 인스턴스/정적 변수를 null로 둘 수 있습니다.
    • 기본형 인스턴스/정적 변수는 미초기화 시 기본값을 가집니다.
int herAge; // 기본값은 0
Integer hisAge = null;
if (hisAge != null) {
  // hisAge가 설정되지 않았을 때의 처리
}
Java의 데이터 타입과 예외

Ayo berlatih!

Java의 데이터 타입과 예외

Preparing Video For Download...