카테고리 없음

JAVA 래퍼 클래스 추가해야함ㅇㅇ

나주나주 2024. 2. 2. 14:29

Wrapper 클래스

: 객체지향 개념에서 모든 것은 객체로 다루어져야 한다. 그러나 자바에서는 8개의 기본형을 객체로 다루지 않는데 이것이 바로 자바가 완전한 객체지향 언어가 아니라는 얘기를 듣는 이유이다. 그 대신 높은 성능을 얻을 수 있었다.

primitive type 기본형 변수도 어쩔 수 없이 객체로 다뤄야 하는 경우(매개변수로 객체를 요구할 때, 기본형 값이 아닌 객체로 저장해야 할 때, 객체 간의 비교가 필요할 때)가 있다. 

[주의사항] 래퍼클래스 생성자의 매개변수로 문자열을 제공할 때, 알맞은 문자열을 사용해야 한다. 다음은 int형의 래퍼 클래스인 Integer클래스의 실제 코드이다.

public final class Integer extends Number implements Comparable {

           ...

            private int value; //래퍼 클래스들은 객체생성 시에 생성자의 인자로 주어진 각 자료형에 알맞은 값을 내부적으로 저장하고 있다

            ...

}

래퍼 클래스들은 모두 equals()가 오버라이딩되어 있어서 주소값이 아닌 객체가 가지고 있는 값을 비교한다. 그래서 실행결과를 보면 equals()를 이용한 두 Integer객체의 비교 결과가 true라는 것을 알 수 있다. 비교연산자 대신 compareTo()를 사용한다. 그리고 toString()도 오버라이딩되어 있어서 객체가 가지고 있는 값을 문자열로 변환하여 반환한다. 이 외에도 MAX_VALUE, MIN_VALUE, SIZE, BYTES, TYPE 등의 static 상수를 공통적으로 가지고 있다.