Published 2022. 10. 4. 01:19
반응형

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 등의 메소드가 존재
반응형

↓ 클릭시 이동

복사했습니다!