Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java Boolean 클래스 완벽 정리: 개념, 주요 메서드, 실전 예제

Java Boolean 클래스란?

java.lang.Boolean 클래스는 final로 선언된 클래스이며, 모든 자바 클래스의 최상위 클래스인 Object 클래스를 상속받습니다. 이 클래스는 기본 타입(primitive type)인 boolean 값을 Boolean 객체로 감싸는 래퍼(Wrapper) 클래스입니다.

Boolean 타입의 객체는 내부적으로 boolean 타입의 필드 하나를 가지고 있습니다. 즉, 래퍼 클래스는 기본 데이터 타입을 객체 형태로 다룰 수 있게 해주며, 컬렉션 프레임워크(List, Map 등)처럼 객체만 저장할 수 있는 자료구조에서 boolean 값을 사용해야 할 때 필수적입니다.

또한 Boolean 클래스는 boolean 값을 String으로 변환하거나 String을 boolean으로 변환하는 다양한 메서드와, boolean 값을 다룰 때 유용하게 쓰이는 상수 및 유틸리티 메서드들을 제공합니다.

클래스 선언 구문

Boolean 클래스는 다음과 같이 선언되어 있으며, Serializable과 Comparable 인터페이스를 구현합니다.

public final class Boolean extends Object implements Serializable, Comparable<Boolean>

주요 메서드

  • booleanValue(): Boolean 객체가 감싸고 있는 기본 타입 boolean 값을 반환합니다.
  • compareTo(Boolean b): 두 Boolean 값을 비교합니다. 같으면 0, 호출한 객체가 true이면 양수, false이면 음수를 반환합니다.
  • equals(Object obj): 두 Boolean 객체의 값이 같은지 비교하여 true 또는 false를 반환합니다.
  • parseBoolean(String s): 문자열을 boolean으로 변환합니다. 문자열이 "true"(대소문자 무관)일 경우에만 true를 반환하고, 그 외에는 false를 반환합니다.
  • toString(): boolean 값을 문자열 형태로 변환합니다.

예제 1: booleanValue() 메서드로 기본 타입 값 가져오기

public class BooleanTest {
    public static void main(String[] args) {
        Boolean b;
        b = new Boolean(true);
        boolean b1;
        b1 = b.booleanValue();
        String data = "Boolean 객체 " + b + "의 기본 타입 값은 " + b1 + "입니다";
        System.out.println(data);
    }
}

실행 결과

Boolean 객체 true의 기본 타입 값은 true입니다

위 예제에서는 new Boolean(true)로 Boolean 객체를 생성한 후, booleanValue() 메서드를 통해 객체에 담긴 기본 타입 boolean 값을 추출하는 과정을 보여줍니다.

예제 2: compareTo()와 equals() 메서드로 값 비교하기

public class BooleanTest1 {
    public static void main(String args[]) {
        Boolean b1, b2;
        b1 = new Boolean(true);
        b2 = new Boolean("false");
        System.out.println("b1 값 : " + b1.booleanValue());
        System.out.println("b2 값 : " + b2.booleanValue());
        System.out.println("b1 compareTo b2 : " + b1.compareTo(b2));
        System.out.println("b1 equals b2 : " + b1.equals(b2));
    }
}

실행 결과

b1 값 : true
b2 값 : false
b1 compareTo b2 : 1
b1 equals b2 : false

두 번째 예제에서는 문자열 "false"를 전달하여 Boolean 객체를 생성할 수도 있다는 점을 확인할 수 있습니다. compareTo() 메서드는 b1(true)이 b2(false)보다 크기 때문에 1을 반환하며, equals() 메서드는 두 객체의 값이 다르므로 false를 반환합니다.

참고 사항

Java 9부터 new Boolean(...) 생성자는 더 이상 권장되지 않으며(deprecated), 대신 Boolean.valueOf(true) 또는 상수 Boolean.TRUE, Boolean.FALSE를 사용하는 것이 좋습니다. 이렇게 하면 불필요한 객체 생성을 줄여 메모리 효율성을 높일 수 있습니다.