woodisco 2023. 4. 24. 16:23

 

 

Object 클래스

 

Object 클래스는 모든 JAVA 클래스의 조상 클래스이다.

 

Object 클래스의 메소드

 

toString : 어떠한 객체를 문자화시키는 메서드

finalize : 객체가 소멸될 때 호출되는 메서드

clone : 똑같은 객체를 생성할 수 있는 메서드

class Student implements Cloneable{
    String name;
    Student(String name) {
        this.name = name;
    }
    
    public Object clone() throws CloneNotSupportedException() {
        return super.clone();
    }
}

public class ObjectDemo {
    public static void main(String[] args) {
        Student s1 = new Student("test");
        // 복제를 하기 위해서는 Cloneable을 구현하기
        try {
            s1.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
    }
}

 


 

제네릭

 

제네릭은 클래스와 메서드를 하나 이상의 유형으로 매개 변수화할 수 있는 Java의 기능이다. 이를 통해 각 유형에 대해 별도의 코드 버전을 생성할 필요 없이 다양한 유형에서 작동할 수 있는 재사용 가능한 코드를 생성할 수 있다.

public class Box<T> {
    private T contents;
    
    public Box(T contents) {
        this.contents = contents;
    }
    
    public T getContents() {
        return contents;
    }
}

이 예제에서는 모든 유형의 객체를 담을 수 있는 Box라는 클래스를 정의한다. 클래스 정의의 T는 클래스의 인스턴스가 생성될 때 실제 유형으로 대체되는 유형 매개변수이다. contents 필드는 개체를 보유하고 getContents() 메서드는 개체를 반환한다. 다양한 유형의 객체를 보관하기 위해 Box 클래스를 사용하는 방법은 다음과 같다.

Box<String> stringBox = new Box<>("hello");
String contents = stringBox.getContents();

Box<Integer> intBox = new Box<>(42);
int contents = intBox.getContents();

이 예에서는 Box 클래스의 두 인스턴스를 만든다. 하나는 String 개체를 포함하고 다른 하나는 Integer 개체를 포함한다. 인스턴스를 생성할 때 유형 매개변수를 지정한다.(첫 번째는 String, 두 번째는 Integer) 그런 다음 지정된 유형의 객체를 반환하는 getContents() 메서드를 사용하여 각 상자의 내용을 검색할 수 있다. 제네릭은 다양한 형식에서 작동할 수 있는 재사용 가능한 코드를 만드는 강력한 방법을 제공한다. 코드 중복을 줄이고 코드 가독성과 유지 관리성을 향상시키는 데 도움이 된다.