일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- scanner
- 자바스크립트
- Git
- 정보처리기사
- sql문
- JavaScript
- 프로그래머스 SQL
- 클래스
- DML
- SQL
- select
- github
- 웹개발
- order by
- Linux
- 예외처리
- MySQL
- 프로그래밍
- String클래스
- mybatis
- where
- 알고리즘
- 입출력
- Java
- 리눅스
- html
- 데이터 조회
- 형변환
- 메서드
- 백엔드
- 정보처리기사필기요약
- 프로그래머스 sql 고득점 kit
- 백준
- 스프링
- 자바
- 개발자
- select문
- 프론트엔드
- BufferedReader
- StringBuilder
- Today
- Total
ToBe끝판왕
[ JAVA ] 래퍼 클래스 ( Wrapper Class ) 본문
래퍼 클래스 ( Wrapper Class )
• 기본 데이터 타입( Primitive Data Type )을 객체( Object )로 감싸기 위해 제공되는 클래스
• 기본형을 객체로 감싸 편리하게 사용 가능하므로 아주 유용하다.
※ 기본형의 한계
• 객체가 아니므로 스스로 메서드를 제공할 수 없다.
• Null값 ( 데이터가 없음 )을 표현할 수 없다.
• 래퍼 클래스( Wrapper Class ) 의 특징
- 불변 객체이다.
- equals() 메서드를 활용하여 비교해야 한다.
• 래퍼 클래스의 사용법
- 기본형을 래퍼클래스( Wrapper Class) 로 변경하는 것을 박싱( Boxing )이라고 한다.
- new Integer(20) 보다는 valueOf() 메서드를 활용해야 한다.
- 래퍼클래스( Wrapper Class ) 에 있는 기본형 값을 다시 꺼내는 메서드이다.
package lang.string.builder;
public class WrapperClassMain {
public static void main(String[] args) {
Integer newInteger = new Integer(20); // 미래 삭제 예정이므롸, valueOf() 사용
Integer integerObj = Integer.valueOf(20); // 자주 사용하는 숫자값 재사용, 불변
Long longObj = Long.valueOf(100);
Double doubleObj = Double.valueOf(10.8);
System.out.println("newInteger = " + newInteger);
System.out.println("integerObj = " + integerObj);
System.out.println("longObj = " + longObj);
System.out.println("내부 값 읽기");
int intValue = integerObj.intValue();
System.out.println("intValue = " + intValue);
Long longValue = longObj.longValue();
System.out.println("longValue = " + longValue);
System.out.println("비교");
System.out.println("==: " + (newInteger == integerObj));
System.out.println("equals: " + newInteger.equals(integerObj));
}
}
// 실행 결과
newInteger = 20
integerObj = 20
longObj = 100
내부 값 읽기
intValue = 20
longValue = 100
비교
==: false
equals: true
• 박싱( Boxing ) / 언박싱( Unboxing ) / 오토박싱( Auto Boxing )
- 박싱 : valueOf( )- 언박싱 : xxxValue( ) ( 예 : intValue() , doubleValue() )- 오토박싱 : 컴파일러가 개발자 대신 valueOf( ) 나 xxxValue( ) 등 코드를 추가해주는 기능
package lang.string.builder;
public class WrapperClassMain {
public static void main(String[] args) {
// 기본형 -> 래퍼 클래스
int value = 7;
Integer boxedValue = Integer.valueOf(value);
// 래퍼 클래스 --> 기본형
int unboxedValue = boxedValue.intValue();
System.out.println("boxedValue = " + boxedValue);
System.out.println("unboxedValue = " + unboxedValue);
// 오토박싱 , 오토 언박싱
int value2 = 8;
Integer boxedValue2 = value2;
int unboxedValue2 = boxedValue2;
System.out.println("boxedValue2 = " + boxedValue2);
System.out.println("unboxedValue2 = " + unboxedValue2);
}
}
// 실행 결과
boxedValue = 7
unboxedValue = 7
boxedValue2 = 8
unboxedValue2 = 8
• 래퍼 클래스 주요 메서드
- valueOf( ) : 래퍼타입 반환 ( 숫자열, 문자 모두 지원 )
- parseInt( ) : 문자열을 기본형으로 변환
- compareTo( ) : 내값과 인수값 비교 ( 내 값이 크면 1, 같으면 0, 작으면 -1을 반환 )
package lang.string.builder;
public class WrapperClassMain {
public static void main(String[] args) {
Integer i1 = Integer.valueOf(10); // 숫자 래퍼 객체 반환
Integer i2 = Integer.valueOf("20"); // 문자열 래퍼 객체 반환
int intValue = Integer.parseInt("30"); // 문자열 전용으로 기본형 반환
// 비교
int compareResult = i1.compareTo(20);
System.out.println("compareResult = " + compareResult);
// 산술 연산
System.out.println("sum: " + Integer.sum(10,20));
System.out.println("sum: " + Integer.min(10,20));
System.out.println("sum: " + Integer.max(10,20));
}
}
// 실행 결과
compareResult = -1
sum: 30
sum: 10
sum: 20
• 래퍼 클래스 추가 예시
package lang.string.builder;
public class WrapperClassMain {
public static void main(String[] args) {
// parseInt() 메서드
String str1 = "10";
String str2 = "20";
int num1 = Integer.parseInt(str1);
int num2 = Integer.parseInt(str2);
int sum = num1 + num2;
System.out.println("parseInt() sum = " + sum);
// 박싱 & 언박싱
String str3 = "100";
// String --> Integer
Integer integer1 = Integer.valueOf(str3);
System.out.println("integer1 = " + integer1);
// Integer --> int
int intValue = integer1.intValue();
System.out.println("intValue = " + intValue);
// int --> Integer
Integer integer2 = Integer.valueOf(intValue);
System.out.println("integer2 = " + integer2);
}
}
// 실행 결과
parseInt() sum = 30
integer1 = 100
intValue = 100
integer2 = 100
※ 해당 내용은 인프런 김영한 강사님의 "실전 자바 중급1" 인강의 참고자료와 예시들을 참고하였습니다
'■ 프로그래밍 SKILLS > JAVA' 카테고리의 다른 글
[ JAVA ] 예외 처리 (1) (0) | 2024.08.21 |
---|---|
[ JAVA ] 열거형 ( ENUM ) (0) | 2024.08.20 |
[ JAVA ] String 클래스 (2) (0) | 2024.08.19 |
[ JAVA ] String 클래스 (1) (0) | 2024.08.13 |
[ JAVA ] 불변 객체 ( 기본형과 참조형 ) (0) | 2024.08.12 |