[Java] Object Class와 Wrapper Class
1) Class Object
-> Object class는 모든 class의 superclass이다.
-> Object clas의 member method
- boolean equals(Object obj) - Compares this object to its argument
- int hashCode() - Returns an integer hash code value for this object
- String toString() - Returns a string that textually represents the object
- Class<?> getClass() - Returns a unique object that identifies the class of this object
boolean equals(Object obj) - overriding example
@Override
public boolean equals(Object obj){
if(obj == this) return true;
if(obj == null) return false;
if(this.getClass() == obj.getClass()){
Person other = (Person) obj;
return name.equals(other.name) && number.equals(other.number);
} else{
return false;
}
}
2) Class Class
-> 모든 class는 하나의 Class 객체를 가진다.
-> 이 객체는 각각의 class에 대해서 유일하다.
-> 메서드 getClass()는 Object class가 제공하는 method이며, 이 유일한 Class객체를 반환한다.
-> 비교 대상인 두 객체 (this와 obj)가 동일한 class의 객체임을 알 수 있다.
3) Class Wrapper
-> Java에서 primitive type data와 non-primitive type data, 즉 객체는 근본적으로 다르게 처리된다.
-> 가령 Object type의 배열에는 다형성의 원리에 의해서 모든 종류의 객체를 저장할 수 있다.
하지만, primitive type data는 객체가 아니므로 저장할 수 없다.
-> 때때로 primitive type data를 객체로 만들어야 할 경우가 있다. (universal array에 넣어야 할 경우)
이럴 때 Integer, Double, Character 등의 wrapper class를 이용한다.
Object[] array = new Object[100];
int a = 20;
Integer age = new Integer(a); // wrapping
int b = age.intValue(); // unwrapping
// 데이터 타입간의 변환 기능을 제공
String str = "1234";
int d = Integer.parseInt(str);
4) Autoboxing과 Unboxing
Object[] theArray = new Object[100];
theArray[0] = 10;
int a = (Integer)theArray[0];
-> 10은 정수이지만 Java 컴파일러가 자동으로 이것을 Integer 객체로 변환해준다. (auto boxing)
-> theArray[0]에 저장된 것은 Integer객체이지만 Java 컴파일러가 자동으로 정수로 변환해준다. (unboxing)
'Programing > Java' 카테고리의 다른 글
[Java] Generic Programming (0) | 2021.01.04 |
---|---|
[Java] 추상클래스와 인터페이스 (0) | 2020.12.28 |
[Java] static과 non-static && 접근 제어 (0) | 2020.12.19 |
[Java] String 클래스 기본 메서드 (0) | 2020.12.10 |
[Java] 값에 의한 호출 (0) | 2020.12.09 |