-
학원 DAY19. Wrapper 클래스기록 2022. 10. 3. 22:52
- 기본자료형 값을 담은 객체를 생성하는 클래스다.
- java.lang패키지에 정의되어 있다.
ex. Integer x = new Integer(10); // x라는 변수에는 주소값이 들어있으며, Integer객체에 멤버변수의 이름은 모르지만 10이라는 값이 들어있다는 의미이다. 즉, Integer라는 객체는 정수값10을 갖고 있는 객체이다.
사용해야 할 때 :
- 기본자료값이 아닌 객체로 저장해야 할 때 (자바의 자료구조 안에는 기본자료형을 담을 수 없고 객체만 담을 수 있다.)
- 호출할 메소드의 매개변수가 객체를 요구할 때
- null값이 저장될 가능성이 있을 때 (기본자료형은 null값을 저장할 수 없다.)
- 해당 기본자료형값에 대한 다양한 기능을 실행해야 할 때
각각의 기본자료형마다 대응되는 Wrapper클래스가 존재한다.
byte --- Byte
short --- Short
int --- Integer
long --- Long
float --- Float
double --- Double
char --- Character
boolean --- BooleanBoxing : 박스안에 값을 담는 것
unboxing : 박스안에 들어있는 기본 자료형 값을 꺼내는 것
< Auto-boxing을 이용해서 Wrapper 객체에 기본자료형값 담기 >
Integer x = 10; // Integer x = new Integer(10); (이러한 형태는 API에서 depricated상태임.)
Long x = 1000000000L; // Long x = new Long(100000000L);
Double x = 3.14; // Double x = new Double(3.14);
Boolean x = true; // Boolean x = new Boolean(true);=> 오토박싱은 변수의 타입이 Wrapper클래스 타입이면 왼쪽 코드와 같이 적었을 때,
실제로 오른쪽 코드가 실행되는 것이다.< Auto Unboxing을 이용해서 Wrapper 객체를 기본자료형타입 변수에 대입하기 >
Integer x = new Integer(10);
int y = x; // int y = x.intValue(); x가 참조하는 Integer객체의 값 10이 대입된다.=> 오토언박싱은 Wrapper객체를 기본자료형타입의 변수에 대입하면
Wrapper객체의 xxxValue() 메소드를 실행해서 Wrapper객체에 저장된 값이 대입된다.package day19; public class WrapperApp1 { public static void main(String[] args) { // 오토박싱이 지원되기 때문에 기본자료형값을 대입하면 // 1. 지정된 값을 담고 있는 Wrapper객체가 생성된다. // 2. 생성된 Wrapper객체의 참조값이 참조변수에 대입된다. Integer a = 10; // a는 Integer객체의 주소값을 가지고 있다. Long b = 1000000000L; // b는 Long객체의 주소값을 가지고 있다. Double c = 3.14; // c는 Double객체의 주소값을 가지고 있다. System.out.println(a); // System.out.println(a.toString()); 문자열"10"이 출력된다. System.out.println(b); // System.out.println(b.toString()); "1000000000"이 출력된다. System.out.println(c); // System.out.println(c.toString()); "3.14"가 출력된다. int x = a; // a가 참조하는 Integer객체의 정수값 10을 가지고 있다. long y = b; // y는 b가 참조하는 Long객체의 정수값 100000000을 가지고 있다. double z = c; // z는 c가 참조하는 Double객체의 실수값 3.14를 가지고 있다. System.out.println(x); // 정수값 10이 출력된다. System.out.println(y); // 1000000000이 출력된다. System.out.println(z); // 3.14가 출력된다. Integer k = 10; Integer i = 100; Double j = 3.0; // k, i, j는 객체의 주소값을 가지고 있지만, // 사칙연산에 참여하게 되면 그 객체가 가지고 있는 기본자료형값이 사칙연산에 이용된다. System.out.println(k + i + j); } }
Wrapper클래스의 메소드
메소드 이름에 parse가 붙어있으면 문자열을 다른형태로 변환하는 경우이다.
- 문자열을 정수로
Integer.parseInt(문자열) -> 정수값
Long.parseLong(문자열) -> 정수값
- 문자열을 실수로
Double.parseDouble(문자열) -> 실수값
- 문자열을 불린으로
Boolean.parseBoolean("true") -> true
Boolean.parseBoolean("false") -> false
- 문자열을 날짜로
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.parse("2022-09-28") -> Date 객체
'기록' 카테고리의 다른 글
학원 DAY 21. 제네릭(Generic), comparable인터페이스 (0) 2022.10.04 학원 DAY20. Date, Calendar, Format, Math 클래스 (0) 2022.10.04 학원 DAY18. System 클래스 (0) 2022.10.03 학원 DAY17. StringBuilder, StringBuffer 클래스 (0) 2022.10.03 학원 DAY 17. String 클래스 (0) 2022.10.03