30 Mart 2013, CUMARTESİ
Ne someObject.yeni` Java mı?
Java, aşağıdaki kodu yasal olduğunu öğrendim:
KnockKnockServer newServer = new KnockKnockServer();
KnockKnockServer.receiver receive = newServer.new receiver(clientSocket);
BİLGİNİZE, alıcı aşağıdaki imza ile sadece bir Yardımcı Sınıf
public class receiver extends Thread { /* code_inside */ }
Daha önce XYZ.new
gösterimde gördüm. Nasıl çalışır? Daha geleneksel kod için herhangi bir yolu var mı?
CEVAP
30 Mart 2013, CUMARTESİ
Oracle docs açıklanan içeren sınıf beden dışında statik olmayan iç sınıf oluşturmak için.
Her iç sınıf örneği içeren kendi sınıfının bir örneği ile ilişkilidir. Ne zaman 7 ** iç sınıfındaniçindeiçeren sınıfının varsayılan olarak konteyner this
örnek kullanır:
public class Foo {
int val;
public Foo(int v) { val = v; }
class Bar {
public void printVal() {
// this is the val belonging to our containing instance
System.out.println(val);
}
}
public Bar createBar() {
return new Bar(); // equivalent of this.new Bar()
}
}
Ama eğer Bar örneği dışında bir Foo oluşturmak, ya da içeren bir örnek this
dışında yeni bir örneğini ilişkilendirmek istiyorsanız, o zaman önek gösterimini kullanmak zorunda.
Foo f = new Foo(5);
Foo.Bar b = f.new Bar();
b.printVal(); // prints 5
Bunu Paylaş:
Java nasıl yeni bir Liste yapmak için...
Java int String - İnteger.(ben) vs yen...
Bölünmüş Yeni Satır Dize Java...
Yok bir yeni Satır Ortamı gibi Java'da...
C# vs Java Numaralama (C yeni#)...