개발입문/JAVA

Wrapper Class 래퍼클래스

haloaround 2017. 9. 12. 00:31

1. Error 발견


Solution.java:18: error: int cannot be dereferenced
    int n = in .nextInt();
    String s = n.toString();

- reference: 참조, 포인터 자체
- dereference: 포인터가 가리키는 값 (Value) 

int 는 값 자체이기 때문에 포인터라는 개념이 없어서
포인터 연산 할 수 없다 cannot be dereferenced 에러를 뱉어내고 있다.




2. Primitive DataType 과 Object

int 는 primitive DataType
Integer 는 Object 로, 힙에 인스턴스화할 수 있다.

int ---- Integer

Integer 와 같은 것을 "Wrapper Class" 라고 한다.

int 를 Integer 객체에 넣는 것을 Boxing
Integer 를 int 화 하는 것을 UnBoxing 이라고 한다.



3. .valueOf

객체는 템플릿, 박스같은 존재이다.

int n 을 Integer 박스에도, String 박스에도 넣을 수 있다.
이 때 컴파일러는 N, s 를 각각 Integer, String 으로 인식한다.
객체의 값을 알고 싶을 때는 valeOf(int n) 을 사용한다.

Integer N = Integer.valueOf(n);
String s = String.valueOf(n);



4. equal

public boolean equals(Object obj)

객체 동치 여부를 확인한다.
같은 int 값을 가지고 있는 객체를 같다고 정의한다.