티스토리 뷰

Java

java clone

Xion 2018. 9. 4. 15:41

clone = 복제라는 뜻

 어떤 객체가 있을때 그 객체를 똑같이 복제해주는 역할.


class Student implements Cloneable{
    String name;
    Student(String name){
        this.name = name;
    }
    protected Object clone() throws CloneNotSupportedException{
        return super.clone();
    }
}
class ObjectDemo {
    public static void main(String[] args) {
        Student s1 = new Student("egoing");
        try {
            Student s2 = (Student)s1.clone();
            System.out.println(s1.name);
            System.out.println(s2.name);
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
    }
}



clone 메소드의 접근제어자는 protected Object이다.

Object는 자바랭 패키지에 속해있음.

to String같은것은 접근제어자가 public이라서 호출가능.

모든 클래스의 조상은 오브젝트이다.

이러한 특성으로인해 모든 클래스들은 오브젝트 클래스가 가지고있는 메소드를 공통적으로 가지고있다.

모든 클래스는 오브젝트를 부모로한다 이말은 약속이다.


필요에따라 오버라이딩하여 기본적인 동작 방법을 바꿀수있다.


그냥 익셉션은 반드시 처리야하한다 런타임익셉션과 달리.


첫번쨰 줄 처럼 cloneable을 구현하여 클래스인 Student가 복제가능한 것이라는걸 인지시켜줘야한다.

클론메소드의 접근제어자는 protected이다. 서로다른 패키지에서는 호출 불가능하지만 서로다른 패키지라 할지라도

상속은 가능하다.


'Java' 카테고리의 다른 글

참조 (reference)  (0) 2018.09.04
enum  (0) 2018.09.04
java finalize , garbage collection  (0) 2018.08.29
자바 equals  (0) 2018.08.29
Object클래스  (0) 2018.08.29