태그

#JAVA

JAVA - wrapper

2021년 6월 16일 00:18

53-thumbnail-image

wrapper 클래스

  • 기본 자료형을 클래스화 시킨 자료형

  • 기본 자료형을 객체로 포장했다

  • 기본 자료형 (primitive) : int, double, float, boolean...

  • 참조 자료형 (reference) : int[], String, Integer, Double, Float, Boolean -> wrapper class or boxed class

                                     <heap에 들어 있는 자료형 / 주소값이 있는 자료형>
    
  1. 기본 자료형 (primitive) 에 저장하기
int n1 = 5;
System.out.println(n1);
  1. 래퍼 클래스 (wrapper class) 에 저장하기
Integer n2 = 5;
System.out.println(n2);
  1. 래퍼 클래스 객체를 만들어 값 저장하기
Integer n3 = new Integer(5);
System.out.println(n3);

비교

Integer n4 = 5;
System.out.println(n1 == n2); // int - Integer : true => 값비교
System.out.println(n1 == n3); // int - new Integer : true => 값비교
System.out.println(n2 == n3); // Integer - new Integer : false => 주소비교
System.out.println(n2 == n4); // Integer = Integer : true => 주소비교 (주소값이 재활용되면 참이 나옴)

// 둘 다 래퍼 클래스면 .equals 로 비교하기

Integer num1 = new Integer(15);
Integer num2 = new Integer(15);
System.out.println(num1 == num2); // 주소가 같지 않다
System.out.println(num1.equals(num2));

wrapper 클래스 함수

System.out.println(Boolean.logicalXor(c, b));
System.out.println(Boolean.logicalAnd(c, b));
//or - 하나라도 참일 경우  : 참
//and - 둘 다 참이여야 참

System.out.println(Boolean.valueOf("true"));//근데 1은 안됨 해봄
//valueOf - 입력받은 인자의 값을 지정된 앞의 객체형으로 반환하여 반환
String.valueOf(5);// -> "5"
//valueOf - String은 어떤것을 넣든 String형으로 다 반환

//auto-boxing - 참조형변수에 일반 데이터를 넣으면 자동으로 객체화 시키는것
Boolean d = true;
System.out.println(d.toString());

//auto-unboxing - 일반 변수에 참조형 데이터를 넣으면 자동으로 일반 데이터로 변환 시키는것
boolean e = new Boolean("dfdf");

System.out.println(e);
[//e.toString](https://e.tostring/)()이 안되는 이유는 참조형이 아니기 때문에