Java Object clone() メソッド
Object clone() メソッドは、オブジェクトのコピーを作成して返すために使用されます。
clone メソッドはシャローコピーであり、オブジェクト内の属性が参照するオブジェクトは参照アドレスのみがコピーされ、参照されるオブジェクトにメモリが再割り当てされることはありません。これに対応するディープコピーでは、参照されるオブジェクトも再作成されます。
構文
object.clone()
パラメータ
无 。
戻り値
オブジェクトのコピーを返します。
Object 自体は Cloneable インターフェースを実装していないため、clone メソッドをオーバーライドせずに呼び出すと、CloneNotSupportedException 例外が発生します。
例
次の例では、obj1 オブジェクトを作成し、obj1 を obj2 にコピーして、obj2 を通じて変数の値を出力します:
例
class サンプルTest implements Cloneable {
//変数の宣言
String name;
int likes;
public static void main(String[] args) {
//オブジェクトの作成
サンプルTest obj1 = new サンプルTest();
//変数の初期化
obj1.name = "サンプル";
obj1.likes = 111;
//プリント出力
System.out.println(obj1.name); // サンプル
System.out.println(obj1.likes); // 111
try {
//obj1 のコピーを作成
サンプルTest obj2 = (サンプルTest) obj1.clone();
//obj2 を使用して変数を出力
System.out.println(obj2.name); // サンプル
System.out.println(obj2.likes); // 111
} catch (Exception e) {
System.out.println(e);
}
}
}
上記のプログラムの実行結果は次のとおりです:
サンプル 111 サンプル 111
その他の拡張
Java Object クラス