1. Bir nesne oluşturma
Şey, nesneler yaratmaya geldik. Bununla daha önce karşılaştınız, ancak şimdi bu konuyu daha ayrıntılı olarak inceleyeceğiz. Nesneleri yaratmak aslında çok kolaydır.
Bir nesne oluşturmak için new operatörünü kullanmanız gerekir . Bir nesne oluşturmak yaklaşık olarak şuna benzer:
new Class(arguments)
Bir nesne oluşturduktan sonra, çoğu kez, oluşturulan nesneyle aynı türü paylaşan bir değişkene bir referansı hemen kaydederiz. Bu, bir nesne oluştururken genellikle şöyle bir kod gördüğünüz anlamına gelir:
Class name = new Class(arguments)
Nerede yeni bir değişkenin yaratılması ve eşittir işaretinin sağındaki kod, türü olan yeni bir nesnenin oluşturulmasıdır .Class name
Class
Örnekler:
kod | Not |
---|---|
|
Object bir nesne oluştur |
|
Cat bir nesne oluştur |
|
Scanner bir nesne oluştur |
Programcılar genellikle değişkenleri sınıflarından sonra, ancak küçük harfle adlandırırlar. Acemi bir programcı için bu tür kodlar kafa karıştırıcı olabilir:
kod |
---|
|
|
|
Bu kodda yanlış olan bir şey yok — bu, bir değişkenin yaratıldığı ve ardından aynı türden bir nesne tarafından hemen başlatıldığı en sıradan koddur.
Eşittir işaretinin solunda bir değişken oluşturma işlemimiz var. Sağda, bir nesnenin oluşturulması. Bu kadar.
2. Yapıcı
Bir nesne oluşturulurken bazı argümanların sıklıkla iletildiğini muhtemelen görmüşsünüzdür. Dahası, argümanlar bazı nesneler için iletilirken diğerleri için iletilmez. Argümanlarla birlikte tüm bu mekanizma nasıl çalışıyor?
Burada da her şey basit: her sınıfın, bir nesne oluşturulurken iletilen bağımsız değişkenleri işlemekten sorumlu olan özel bir yöntemi (veya yöntemleri) vardır. Bu yöntemlere yapıcılar denir . Veya sadece birinden bahsediyorsak: yapıcı .
Bir yapıcı yöntemi normal bir yöntemden ayırt etmek kolaydır. Bu yöntemin iki ayırt edici özelliği vardır:
- yapıcının adı sınıfının adıyla aynıdır (ve büyük harfle başlar)
- bir yapıcının dönüş türü yoktur.
Genel olarak, genellikle şöyle görünür:
modifiers Class(arguments)
{
Code
}
Örnek:
kod | Not |
---|---|
|
Point sınıf Point sınıf oluşturucu |
|
Sınıfın bir nesnesini oluşturun Point . Sınıf yapıcısı çağrılacaktır. |
Yapıcının nasıl göründüğüne dikkat edin: dönüş tipi yoktur ve adı sınıf adıyla aynıdır.
Ve bir şey daha: yapıcının içindeki koda bir göz atın. Yapıcının parametreleri, sınıfın alanlarıyla aynı adlara sahiptir: x ve y. Yeni parametre adları oluşturmaktan kaçınmak standart bir uygulamadır. Adlar, sınıfın alanlarının adlarıyla aynıdır. Ad çakışması this anahtar sözcüğü kullanılarak çözülür.
3. Yapıcı çağırmak
Yeni bir nesne oluşturmak için new operatörünü ve "new Class ( argümanlar )" gibi bir komutu kullandığınızda iki şey olur:
- Java makinesi, türü Class olan bir nesne oluşturur.
- Java makinesi, nesnenin yapıcısını çağırır ve argümanlarınızı iletir
Bir programcı olarak, sınıfınızın hangi kuruculara sahip olması gerektiğine ve bu kurucuların hangi parametrelere sahip olması gerektiğine siz karar verirsiniz.
Bir hayvan barınağında kedileri takip etmek için bir sınıf oluşturmaya karar verdiğinizi varsayalım. O zaman Cat
sınıfınız şöyle görünebilir:
|
|
|
buna izin verilir |
|
Ancak buna izin verilmiyor Bu kod derlenmeyecek. |
|
Ve buna izin verilmiyor. Bu kod derlenmeyecek. |
Sınıfın Cat
, adı ve yaş parametreleri olan tek bir yapıcısı vardır. Başka oluşturucu olmadığından, bir nesne oluştururken kedinin adını ( name
) ve yaşını ( ) argüman olarak iletmelisiniz. age
Yapıcıya bağımsız değişkenler iletmek isteğe bağlı değildir .
4. Çoklu kurucular
Ancak ihtiyacınız varsa, sınıfa birden çok kurucu ekleyebilirsiniz. Yapıcı sayısında veya parametrelerinde herhangi bir sınırlama yoktur. Bir nesne oluşturduğunuzda, derleyici otomatik olarak parametrelerle eşleşen oluşturucuyu seçer.
kod | Not |
---|---|
|
|
|
Buna izin verilir: ilk kurucu çağrılacak |
|
Buna izin verilir: ikinci kurucu çağrılacak |
|
Ancak buna izin verilmiyor Bu kod derlenmeyecek. |
Bir kedinin yaşının bilinmeyebileceğini hesaba katmaya karar verdik. Bu durumu halletmek için, sadece bir parametreye sahip olan bir kurucu ile birlikte özel sabiti ekledik UNKNOWN
- kedinin adı.
Her iki yapıcıda da her iki değişkeni de başlattığımıza dikkat edin. Bilinmeyen/eksik parametreleri sabit ile değiştiriyoruz UNKNOWN
.
Yaş değişkenine herhangi bir değer atanmazsa, varsayılan değeri 0 olacaktır. Sonuçta, sokakta bulunan bir kedi yavrusu pekala 0 tam yaşında olabilir. Bu, yaş değişkenindeki sıfırın mutlaka "bilinmeyen yaş" anlamına gelmediği anlamına gelir.
5. Varsayılan kurucu
Nesnelerinizin herhangi bir parametre olmadan başlatılmasını istiyorsanız, sınıfınızın bağımsız değişken olmayan bir oluşturucu bildirmesi gerekir.
Parametresiz bir oluşturucu, kodsuz bir oluşturucu olmak zorunda değildir. Böyle bir yapıcı, değişkenleri başlangıç değerleri ile başlatan kod içerebilir:
kod | Not |
---|---|
|
|
|
Buna izin verilir: ilk kurucu çağrılacak |
|
Buna izin verilir: ikinci kurucu çağrılacak |
varsayılan kurucu
Bilmeniz ve hatırlamanız gereken çok önemli bir nokta var.
Sınıfınız birden fazla yapıcı bildirirse , derleyici, genel değiştiriciye sahip argümansız bir kurucu olan varsayılan bir kurucu ekler.
Ancak sınıfınız bir tane bile kurucu bildirirse , o zaman hiçbir varsayılan kurucu eklenmez ve isterseniz onu kendiniz eklemeniz gerekir.
kod | Not |
---|---|
|
|
|
Buna izin verilir: varsayılan kurucu çağrılacak |
GO TO FULL VERSION