반응형
Object 클래스란?
- Object 클래스는 모든 자바 클래스들의 최고 조상 클래스
- 따라서 모든 자바 클래스들은 Object 클래스의 모든 메소드들을 바로 사용할 수 있음
Object 클래스의 Method 사용 예제 1
- 아래 코드에서는 Object 클래스의 toString, getClass, eqauls 메소드를 사용해봄
- getClass() : 해당 Object가 어떤 클래스인지 출력
- toString() : 해당 Object를 String 타입으로 변환, Student 클래스를 String 타입으로 출력했을 때는 주소값이 출력됨
- equals() : 해당 Object가 같은지 출력, student와 student2는 name, age가 같긴 하지만 주소값은 다르기 때문에 false 출력
public class Test {
public static void main(String[] args) {
String str = "Hello";
System.out.println(str.getClass()); // class java.lang.String 출력
System.out.println(str.equals("Hello")); // true 출력
Integer x = new Integer(15);
System.out.println(x.toString()); // 15 출력
Student student = new Student("Tom", 19);
System.out.println(student.toString()); // Test$Student@2f92e0f4 출력
System.out.println(student.getClass()); // class Test$Student 출력
Student student2 = new Student("Tom", 19);
System.out.println(student.equals(student2)); // false 출력
}
static class Student {
private String name;
private int age;
Student(String name, int age) {
this.name = name;
this.age = age;
}
}
}
Object 클래스의 Method 사용 예제 2 - Overriding
- Object 클래스의 Method를 Override해서 사용자의 의도에 맞게 수정할 수도 있음
public class Test {
public static void main(String[] args) {
Student student = new Student("Tom", 19);
System.out.println(student.toString()); // 이름 : Tom 나이 : 19 출력
Student student2 = new Student("Tom", 19);
System.out.println(student.equals(student2)); // true 출력
}
static class Student {
private String name;
private int age;
Student(String name, int age) {
this.name = name;
this.age = age;
}
public int getAge() { return age; }
public String getName() { return name; }
@Override
public boolean equals(Object obj) {
Student student = (Student) obj;
if(this.name.equals(student.getName()) && this.age == student.getAge()) {
return true;
}
return false;
}
@Override
public String toString() {
return "이름 : " + this.name + " 나이 : " + this.age;
}
}
}
- 이 외에도 clone, hashCode 등의 메소드가 존재
반응형
'JAVA > 기본 문법' 카테고리의 다른 글
[JAVA] Generic, Wrapper Class (1) | 2022.10.04 |
---|---|
[JAVA] Calendar 클래스 (0) | 2022.10.03 |
[JAVA] Big Integer (0) | 2022.10.03 |
[JAVA] String Builder, String Buffer (1) | 2022.10.03 |
[JAVA] 추상 클래스(Abstract Class)와 인터페이스(interface), 인터페이스의 default method (0) | 2022.10.03 |