Java'da, aşağıdaki örnekte ana yöntemin ikinci satırında görülebileceği gibi .
kullanarak bir sınıfın genel üyesine erişebilirim (bu örnek için, kapsülleme konusundaki zayıf kullanımımı görmezden geliyorum).'.' üye erişim için Java'da bir operatör olarak kabul edildi?
public class Test {
public static void main(String[] args) {
Position p = new Position(0,0);
int a = p.x; // example of member access
}
}
class Position {
public int x;
public int y;
public Position(int x, int y) {
this.x = x;
this.y = y;
}
}
.
sadece *
, ~
ve !=
olarak kabul edilmektedir, Java programlama dilinde bir operatör olarak kabul operatörler mı?
Düzenleme - Yukarıdaki örnekte genişletme: işaret edildiği gibi
, Java dili spesifikasyonu bir ayırıcı değil bir operatör olmayı .
gördüğü anlaşılıyor. Yine de, .
'un operatör-ish gibi görünen bazı davranışlar sergilediğini belirtmek isterim. aşağıdakine uzatılmış yukarıdaki örneği ele alalım:
public class Test {
public static void main(String[] args) {
Position p = new Position(0,0);
int a = p . x; // a -> 0
int x = 1;
int b = p . x + x; // b -> 1
}
}
class Position {
public int x;
public int y;
public Position(int x, int y) {
this.x = x;
this.y = y;
}
}
Bazı öncelik elemanı ile erişim eklenmeden önce değerlendirilir şekilde uygulandığına açıktır. Bu sezgisel gibi gözüküyor, çünkü eğer ek ilk önce değerlendirilecekse, o zaman saçmalık olan p.2
olurdu. Yine de, .
'un diğer ayırıcıların yapmadığı davranış sergilediği açıktır.
"Bu" sözdizimini dışarıda bırakmayı düşünün. Bu java dünyasında kötü bir uygulama, diğer taraftan süper sınıfları genişletirken tamamdır. – Tom
@Tom Örneğimde bu ''nin' 'kullanımlarından kurtulmuş olsaydım, o zaman benim kamusal alanlarım örneklenemezdi ve bir çalışma zamanı hatası olurdu. Ayrıca, bu özellikle benim soruma cevap vermiyor. – jbranchaud
@ Tom Görüşün belki, ama neredeyse genel bir kural. Bunları şahsen, bunları ve alanları ayırt edebilmem için parametreler için bazı yeni isimler icat etmekten çok daha üstündür. – Voo