JAVA

[자바/JAVA] 프로그래밍 - API_Wrapper

21종 2023. 6. 14. 16:15

Wrapper 클래스

=> 기본자료형을 객체를 포장해줄 수 있는 클래스가 래퍼클래스 이다.

기본자료형 <----->  Wrapper 클래스
boolean Boolean
char Character ***
byte Byte
short Short
int Integer ***
long Long
float Float
double Double

=> 기본자료형을 객체로 취급해야하는 경우
 - 메소드 호출해야 될 때
 - 메소드의 매개변수로 기본자료형이 아닌 객체타입만이 요구될 때
 - 다형성을 적용시키고 싶을 때


1. 객체 생성 구문을 통한 방법

// Boxing : 기본자료형 => Wrapper 클래스 자료형
int num1 = 10;
int num2 = 15;

// System.out.println(num1.equals(num2)); // 주소값이라는 개념이 없음 -> 비교할 주소값이 없음
// equals => String => 오버라이딩 : 실제값 비교
// equals => 주소값 비교

// 1. 객체 생성 구문을 통한 방법
Integer i1 = new Integer(num1);
Integer i2 = new Integer(num2);

System.out.println(i1);
System.out.println(i2);

System.out.println(i1 == i2);	// 값 비교가 아닌 주소값 비교
System.out.println(i1.equals(i2));	// 겂 비교
System.out.println(i1.compareTo(i2)); // 두 값을 비교해서 앞쪽이 크면 1, 뒤쪽이 크면 -1. 같으면 0


2. 객체 생성 따위 하지 않고 곧바로 대입하는 방법(AutoBoxing)

 

int num1 = 10;
int num2 = 15;
Integer i3 = num1;
System.out.println(i3);

// 객체 생성을 통해서 반드시 변환해야되는 경우 => 문자열을 Integer 타입으로
// Integer i4 = "123";	얘 안된다.
Integer i4 = new Integer("123");	// 오로지 "숫자"를 줘야함
System.out.println(i4);


UnBoxing : Wrapper 클래스 자료형 => 기본자료형

// UnBoxing : Wrapper 클래스 자료형 => 기본자료형

// 1. 해당 그 Wrapper 클래스에서 제공하는 xxxValue() 메소드를 통해
int num3 = i3.intValue();	// num3 = 10
int num4 = i4.intValue();	// num4 = 15

// 2. 메소드 따위 사용하지 않고 바로 대입하는 방법 (AutoUnBoxing)
int num5 = i1;

 

이거 도대체 왜 배우나요?
웹 개발할때 값 입력하면 무조건 문자로 날아옴!! 따라서 UnBoxing 후 연산 작업 필요

String str1 = "10";
String str2 = "15.3";

System.out.println(str1 + str2);	// 문자열 + 문자열 = 문자열

// 1. String --> 기본자료형
//	"10" 	 --> 10
//	"15.3"	 --> 15.3
// 	해당 Wrapper.parseXXX() 사용

int i = Integer.parseInt(str1);
double d = Double.parseDouble(str2);

System.out.println(i + d);

// 2. 기본자료형 --> String
//		10	  --> "10"
//		15.3  ==> "15.3"

String strI = String.valueOf(i);
String strD = String.valueOf(d);
// 근데 이렇게는 많이 안씀...

// 이렇게 씀
String test = i + ""; // 다른자료형 + 문자열 => 문자열