Görüşmede sorulan soru buydu. Eğer bir sınıf java'da birden fazla kurucu varsa ve ne zaman arayabilirim? Sözdizimini kastediyorum?java'dan başka bir kurucu çağırır.
cevap
ve bildiğim sözdizimi
this(< argument list >);
Ayrıca çağırabilir
super(< argument list >);
aracılığıyla bir süper sınıf yapıcı Hem olduğunu Bu tür çağrılar sadece ilk ifadede yapılabilir kurucu (böylece sadece bir başka kurucu arayabilir ve başka bir şey yapmadan önce).
kullanarak çağırırsınız. Ve buna referans gerektiren bir şey yapamazsınız. –
aynı zamanda kurucunun ilk satırında olmalı – sixtyfootersdude
evet, ilk satır bu şekilde uygulanacak ilk olacak – Francis
this(other, args);
Bu, yanıltıcı veya sadece yanlıştır! Başka ne var? Diğer kurucuyu bu (args-gereken-yapıcı) ya da 'süper (args-gereken-yapıcı-kurucu)' 'kullanarak,' –
örnek: Şunları yapabilirsiniz
public class FileDb {
/**
*
*/
public FileDb() {
this(null);
}
public FileDb(String filename) {
// ...
}
}
Evet, bunu yapabilirsiniz.
public ArrayList(int initialCapacity) {
super();
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
this.elementData = new Object[initialCapacity];
}
/**
* Constructs an empty list with an initial capacity of ten.
*/
public ArrayList() {
this(10);
}
ikinci yapıcısı on bir default capacity
ile ilk çağırır:
ArrayList
uygulanması göz at. Bu,
telescoping/telescopic constructor pattern olarak adlandırılan
FYI.
O
- anahtar kelime
this
(muhtemelen açık tip argümanları ile başında) ile başlayan Alternatif yapıcı invocations JLS 8.8.7.1 Explicit Constructor Invokations tartışılan oluyor. Aynı sınıfın alternatif kurucusunu çağırmak için kullanılırlar.- Superklass kurucusu çağrıcılar anahtar sözcüğüyle (büyük olasılıkla açık tür argümanlarla öntanımlı olarak) veya Birincil ifadeyle başlar. Doğrudan üst sınıfın kurucusunu çağırmak için kullanılırlar. cevapların
Yok tamamlandı, bu yüzden boşlukları doldurmak için bu bir ekliyorum.
aşağıdaki kısıtlamalarla birlikte aynı sınıfta başka birini kurucusunu çağırmak veya süper sınıf arayabilirsiniz:
- O çağıran yapıcı kod ilk satırı olmalıdır.
this
ürününe yönelik açık ya da zımni bir referansı olamaz. Bu nedenle, bir iç sınıf (herhangi bir örnek yöntemi başvuruyorsa anonim olanı bile) veya statik olmayan bir yöntem çağrısının sonucunu parametre olarak iletemezsiniz.
(başkaları tarafından belirtildiği gibi) sözdizimi:
MyClass() {
someInitialization();
}
MyClass(String s) {
this();
doSomethingWithS(s);
}
- 1. Node.js'de, bir sunucu başka bir sunucuda bir işlevi nasıl çağırır?
- 2. Yöntem C# sınıflarında başka birini nasıl çağırır?
- 3. Bir kurucu işlevine
- 4. JMockit alay kurucu
- 5. Vue, bir kurucu değil
- 6. Yaratma işlevi çağırır
- 7. Kabuk Betiği bir değişkenle bir işlevi çağırır?
- 8. çağırır pytest sadece
- 9. Nasıl iç içe bir içten gelen onNext çağırır Gözlemlenebilir bir
- 10. dağıtıcı sadece bir kez çağırır C#
- 11. Python'da yinelemeli işlevlerin bir listesini çağırır mısınız?
- 12. TypeError: undefined bir kurucu değil
- 13. TypeError: cognitiveServices.face bir kurucu değil
- 14. "jvm.Map bir kurucu değil" jvectormap
- 15. Angularjs 'FileConstructor bir kurucu değil'
- 16. TypeError: google.visualization.DataTable bir kurucu değil
- 17. Kurucu içindeki prototip yöntemlerinin tanımlanması
- 18. Javascript kurucu?
- 19. Neden başka bir şey tamamlandıktan sonra işlev çağırdığımda, önceki tüm çağrıları çağırır?
- 20. Bir denetleyici sınıfları üzerinde kurucu bağımlılığı enjeksiyonu
- 21. C++ 'da bir kolaylık kurucu var mı?
- 22. Başka bir
- 23. Tkinter: olayı ana döngüde çağırır
- 24. hızlandırma Yansıma çağırır C#/.NET
- 25. "Uygun varsayılan kurucu yok" - Varsayılan kurucu neden çağrılıyor?
- 26. Neden bir kurucu üzerinde bir constexpr kullanıyorsunuz?
- 27. C++ açık şablon yapıcısını çağırır
- 28. C# Genel Kopya Kurucu
- 29. AutoMapper, bir ViewModel eşleştirildikten sonra bir yöntemi nasıl çağırır?
- 30. Açısal 2, alt bileşeninden bir alt öğenin bir işlevini çağırır.
soruyu netleştirmek misin? Nesneleri farklı şekilde oluşturmak için birden fazla kurucu vardır ve diğer sınıflardan çağrılabilir.Sadece bu amaç için yapıldılar. –
, bir kurucuyu başka birinden çağırmak anlamına gelir. – Woot4Moo
, bir kurucunun başka bir kurucudan çağrılmasına izin verilip verilmediğini soruyor ya da bir sınıfın birden fazla kurucuya sahip olup olmadığını sormuyor – Francis