java 대상의 복사 (깊이 있게 보기)

6700 단어
1. 대상 복사를 실현하려면 Cloneable 인터페이스를 실현해야 합니다. 이 인터페이스를 실현하지 않으면 CloneNotSupportedException 이상이 발생합니다.사실 이 인터페이스는 방법이 하나도 없기 때문에 이런 인터페이스는 흔히 표기 인터페이스라고 불린다.2. Object 중 하나의clone () 방법이 얕은 복사를 실현했다.기본 데이터 유형의 구성원 변수에 대해 얕은 복사는 직접 값을 전달한다. 즉, 이 속성 값을 새로운 대상에 복사하는 것이다.따라서 기본적인 데이터 유형은 직접 얕은 복사를 하면 되지만 일부 가변적인 데이터 유형, 예를 들어 Date 대상은 깊은 복사를 실현해야 한다. 물론 Date 클래스는 자체적으로clone () 방법을 실현했다.예를 들어 String 클래스는 clone () 방법을 실현하지 못했다. String 대상은 변하지 않는 문자 서열이기 때문에 그의 생명 주기에 그가 있는 메모리의 문자 서열을 수정할 수 있는 방법이 없기 때문에 서로 다른 대상의 같은 속성이 같은 String을 인용하는 것은 문제가 없다.
public class Main{
	public static void main(String[] args){

	}
}
class Employee implements Cloneable{
	private int id;
	private Date date;
	public Employee(){}
	public Employee(int id){
		this.id=id;
		this.date=new Date();
	}
	@Override
	public Employee clone() throws CloneNotSupportedException{
		Object t=super.clone();// object 
		Employee clone=(Employee)t;
		clone.date=this.data.clone();//date , 
		return clone;
	}
}
class Mannager extends Employee{
	private String name;
	public Mannager(){
		super();
	}
	public Mannager(String name,int id){
		super(id);
		this.name=name;
	}
	@Override
	public Mannager clone(){
		Employee t=super.clone();// id date 
		Mannager clone=(Mannager)t;
		clone.name=t.name;//String  
		return clone;
	}
}

좋은 웹페이지 즐겨찾기