Nesne yönelimli bir programlama dilinde (java/php/c#) hafızada yeni bir nesne örneği yarattığımız zaman bunu bir değişkene atıyoruz. Mesela ArrayList al = new ArrayList(). Daha sonra bu yaratılan örneğin bir kopyasını oluşturmak istediğimiz zaman ArrayList list = al gibi bir yöntemle ilerlersek hata yapmış oluruz. Çünkü bu tarz bir atamayla hafızada zaten olan al ile gösterilen nesne örneği ayrıca list ile gösterilmeye başlanmış olur. Tabi bu ilkel (primitive) tipler için geçerli değil. Yani int tipinde bir değişken olursa değeri kopyalanmış olur.
Peki bir objeden bir tane daha istediğimizde ne yapmalıyız?
Bunu için java’da clonable diye bir interface var. Bunu interface gerçekleştirilirse standard isimlendirme olarak clone metodu kullanılacaktır. Aşağıdaki örneğimize bir göz atalım
Nesne yönelimli bir programlama dilinde (java/php/c#) hafızada yeni bir nesne örneği yarattığımız zaman bunu bir değişkene atıyoruz. Mesela ArrayList al = new ArrayList(). Daha sonra bu yaratılan örneğin bir kopyasını oluşturmak istediğimiz zaman ArrayList list = al gibi bir yöntemle ilerlersek hata yapmış oluruz. Çünkü bu tarz bir atamayla hafızada zaten olan al ile gösterilen nesne örneği ayrıca list ile gösterilmeye başlanmış olur. Tabi bu ilkel (primitive) tipler için geçerli değil. Yani int tipinde bir değişken olursa değeri kopyalanmış olur.
Peki bir objeden bir tane daha istediğimizde ne yapmalıyız?
Bunu için java’da clonable diye bir interface var. Bunu interface gerçekleştirilirse standard isimlendirme olarak clone metodu kullanılacaktır. Aşağıdaki örneğimize bir göz atalım
Sonuc
Kod için
https://github.com/commandito/hasscript.com/blob/master/ornekler/src/main/java/com/hasscript/ornekler/clonable/OrnekClone.java