Bir sınıf bir örnek değişkeni olarak bir nesne içeriyorsa ve yapıcılardan biri parametre ile aynı türde bir nesneyi içeriyorsa, örnek değişkeni argümanını atamak veya yeni bir nesne oluşturmak için en iyi yöntemdir. argüman ve örnek değişkene YENİ HEDEF atayın. Ben seçenek A yazdınız ama this.center
dolaylı modifiye edilebilir varolan nesneyi başvurulan bu hatalı bir davranış oluşturmak düşünüyordu BaşlangıçtaOluşturucuda Nesne Parametreleri: Yeni Örnek Oluşturma veya İşaretçi Atama?
public class MyCircle {
private MyPoint center; //contains variables int x and int y
private int radius;
//Non-controversial Constructor:
public MyCircle(int x, int y, int radius) {
//creates new center using a valid MyPoint constructor
this.center = new MyPoint(x, y);
this.radius = radius;
}
//OPTION A
public MyCircle(MyPoint center, int radius) {
this.center = center;
this.radius = radius;
}
//OPTION B
public MyCircle(MyPoint center, int radius){
this.center = new MyPoint(center.getX(), center.getY());
this.radius = radius;
}
}
: Burada
konuda çalışıyorum bir egzersizden bir örnek istemeden. Bunu düşünmenin alternatif yolu sanırım, bu, bir merkez paylaşan birden çok nesne oluşturmak için bir yol yaratması ve tek bir merkezin taşınması, o merkezin paylaştığı tüm çevreleri kasıtlı olarak hareket ettirmesidir. Java bu seçeneği atılacak (en azından geliştiricileri için) hiçbir işaretçileri vardır ve bu Şimdi gitmek için bir yol .. olmadığından
Burada en iyi uygulama yok çünkü çağrı kodunun merkezde değişiklik yapmasını isteyebilirsiniz. Yoksa yapmazsın. Ayrıca, '' MyPoint'''ün değişmez olduğundan emin olun, böylece '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' values values values values copy copy cannot cannot cannot cannot cannot cannot cannot cannot cannot cannot cannot cannot cannot cannot cannot cannot cannot cannot need need need need need need need need need need need need need need need need need need need need need need need need need need need need need need need need need need need yapıcı. – f1sh