Wrapper class 사용이유?
기본 data type은 객체가 아니어서 Object로 받는 다형성을 지원 할 수없다.
기본 data type을 객체로 변환시켜 전달하기위해 사용되며 auto boxing과 unboxing이 지원된다
Wrapper class
기본자료형 값을 감싼다.
인스턴스안에 넣어두는걸로 이해하면 좋다.
왜 감싸느냐? 제네릭에서 자세히배운다
예시 1.
class UserWrapperClass{
public static void showData(Object obj){
System.out.println(obj);
}
}
인스턴스를 요구하는 메소드
이 메소드를 통해서 정수나 실수를 출력하려면 해당 값을 인스턴스화 해야한다.
메소드 showData를 정의한다.
인자로 무엇을 전달받아서 toString메소드를 호출한다. 이때 인스턴스가 전달되어야한다.
기본자료형값을 보낼 수 없다.
인스턴스를 보내야하는곳에 기본자료형을 전달하면 컴파일에러가 발생한다.
showData 모든 인스턴스를 인자로 전달받을 수있다. 그 인스턴스가 반환하는 문자열을 출력한다.
기본자료형은 object클래스를 상속하지않기떄문에 인자로 전달할 수없다.
기본자료형의 값들은 인자로 받을 수없다. 오브젝트를 상속하지않는다
String str = 3이나 5를 참조할 수 없는것과 비슷하다
기본자료형의 값들은 인자로 받을 수없다.
오브젝트를 상속하지않는다
String str = 3이나 5를 참조할 수없다.
public static void main(String[] args){
Integer iInst = new Integer(3);
showData(iInst);
showData(new Double(7.15));
}
내가 가진것이 값이라면 래퍼클래스를 이용해 인스턴스안에 넣어둔다
3이라는 숫자가 인스턴스화되었다.
7.15라는 더블형값이 더블이라는 인스턴스에 감싸여져서 그 반환값이 showData메소드의 인자로전달되었다.
* 래퍼클래스에서 중요한것은 값을 인스턴스화시킨것
이렇듯 기본 자료형의 값을 인스턴스로 감싸는 목적의 클래스를 가리켜 래퍼클래스라고한다.
'2021 Newlecture > JAVA' 카테고리의 다른 글
StringBuffer클래스 (0) | 2021.09.19 |
---|---|
클래스변수 (0) | 2021.09.18 |
String , StringBuffer, StringBuilder 차이점 (0) | 2021.08.20 |
자바 컬렉션과 제네릭 강의 (0) | 2021.04.25 |
자바 총 정리 (1) | 2021.04.13 |
Inner class / Anonymous class (0) | 2021.04.12 |
인터페이스 구현 (0) | 2021.04.12 |
(추가정리) 추상클래스 와 인터페이스 (0) | 2021.04.11 |