Java'da alanlar
Cup.java içinde Cup sınıfına fill adlı bir int alanı koyun. Shelf.java içinde Cup c = new Cup(); ile bir cup kurun, c.fill = 3; ile bir sayı saklayın, sonra System.out.println(c.fill); ile o alanı yazdırın. Her iki dosyayı derleyin ve java Shelf çalıştırın. Ekran bir satır göstermelidir: 3. Alan veriyi o tek nesnede tutar. Nesneyi adlandıran değişken üzerinden ona ulaşırsınız. Bu değeri nesnede saklamak ve okumak bu sayfanın öğrettiği şeydir.
Nesnede veri için bir yer
Nesneler sayfasında beep yalnızca yazdırıyordu. Sonra için bir sayı tutmuyordu. Alan, sınıfın içinde bildirilen ve her nesnenin kendi değerini tutabileceği bir addır. new nesneyi kurduktan sonra alanı nesne değişkeni üzerinden atarsınız, sonra yazdırabilirsiniz.
Önce Cup.java oluşturun. Public class satırı public class Cup'tır. Burada eski bir Chip veya Badge sınıf adı bırakmayın. Sınıf süslü parantezlerinin içinde bir alan satırı yazın: int fill;. Bu ilk kutuda metot yoktur. Bu sayfada Cup.java içinde main yoktur. Derlemeden önce kaydedin.
public class Cup {
int fill;
}
Shelf fill atar, sonra yazdırır
Aynı klasörde Shelf.java oluşturun. Public class satırı public class Shelf'tir. main içinde sırayla üç satır yazın: Cup c = new Cup();, sonra c.fill = 3;, sonra System.out.println(c.fill);. İlk satır nesneyi kurar. İkinci satır o nesnenin fill alanına 3 yazar. Üçüncü satır saklanan sayıyı yazdırır.
public class Shelf {
public static void main(String[] args) {
Cup c = new Cup();
c.fill = 3;
System.out.println(c.fill);
}
}
Her iki dosyayı tutan klasörden javac Cup.java Shelf.java çalıştırın. İkisi de tamam olduğunda önce Cup.java'yı, sonra Shelf.java'yı derleyebilirsiniz. Parantezler, süslü parantezler ve noktalı virgüller uyuşunca javac kendi satırını yazmaz. Sonra java Shelf çalıştırın — java Shelf.java değil, java Cup de değil. Çalıştırma komutundan .java uzantısını çıkarın. main'i tutan sınıfı başlatın. Aynı komutlar Windows'ta ve macOS'ta çalışır.
Program bir satır yazıp durmalıdır: 3. Sizden yazmanızı istememelidir. Terminal klavye girişi bekliyorsa, eski bir alıştırmadan kalan bir nextLine çağrısı hâlâ bir dosyadadır. O çağrıyı silin; Shelf'te yukarıdaki üç satırı ve Cup'ta fill alanını tutun.
Çalıştırmayı bir kez adım adım izleyin. Java Shelf.main'den başlar. new Cup() bir nesne kurar ve onu c'de saklar. c.fill = 3 ataması o nesnenin alanına 3 yazar. println(c.fill) aynı alanı okur ve 3 yazdırır. Ekrandaki sayı nesnede saklanan değerdir; "ok" gibi sabit bir dizge yazdırması değildir.
Alan adı fill sınıfta bir kez bildirilir. Cup'tan kurulan her nesne o ad için kendi yuvasını alır. c.fill yazdığınızda önce nesneyi, sonra o nesnedeki yuvayı adlandırıyorsunuz. Bu sıra — nesne, sonra alan — bu sayfanın koruduğu biçimdir.
Sınıf, nesne ve alan yan yana
Üç adı bir kez küçük bir tabloda okuyun. Bu sayfada alan satırı her zaman bir nesneden geçer.
📊 class object field
| Name | What it is on this page |
|---|---|
Cup |
the class / type in Cup.java |
c |
one object built with new Cup() |
c.fill |
the int stored on that object |
Nesnesiz Cup.fill = 3; yazmak bu başlangıç biçimine uymaz. Alan, new'den sonra her nesneye aittir. Önce kurun, sonra değişken üzerinden atayın. Sonucu saklamadan yalnız new Cup(); yazmak da fill için size bir ad bırakmaz. Cup c = new Cup(); sonra c.fill = 3; kalsın.
Eski bir nesne demosu klasörü karıştırabilir. Hâlâ Chip sınıfıyla c.beep(); çağıran bir dosya önceki derstir. Bu sayfa için Cup, Shelf ve fill alanını tutun. Burada beep'e ihtiyacınız yoktur.
System.out.println(c); ile c'nin kendisini yazdırırsanız ekran temiz bir 3 göstermez. Varsayılan bir nesne metni yazar. Saklanan sayıyı görmek için c.fill yazdırın.
İki cup ayrı fill tutar
Cup'tan iki nesne kurabilirsiniz. Her birinin kendi fill'i vardır. Birini değiştirmek diğerini değiştirmez.
Shelf'te Cup a = new Cup(); ve Cup b = new Cup(); yazabilir, sonra a.fill = 2; ve b.fill = 9; atayıp a.fill ile b.fill yazdırabilirsiniz. javac Cup.java Shelf.java ve java Shelf sonrası ekran bir satırda 2, sonrakinde 9 göstermelidir. Her iki nesne fill'i bildiren sınıf metnini paylaşır, ama her nesne kendi sayısını tutar.
İki farklı sayı istediğiniz halde her iki yazdırma aynı değeri gösteriyorsa, her iki alanı da atadığınızı ve Cup b = a; yazmadığınızı kontrol edin. O satır b'yi a ile aynı nesneye bağlar; böylece her iki ad bir fill paylaşır. Bu sayfada iki ayrı fill istediğinizde iki new Cup() ifadesi kullanın.
Bu pratik için üçüncü kutulu bir programa ihtiyacınız yoktur. Shelf'i dikkatle düzenleyin, yeniden derleyin ve tekrar çalıştırın. Sonra quiz'in ilk biçimini isterseniz tek-cup kutusunu geri getirebilirsiniz.
Kurucuların sonra ekleyeceği şey
Bu sayfa alanı new'den sonra ayrı bir satırla atar: c.fill = 3;. Sonraki bir sayfa — kurucular — nesne kurulurken başlangıç değerlerini ayarlamanın başka bir yolunu gösterecek. Burada düz alan ve new'den sonraki atama ile kalın. Bu sayfada bir kurucu metot uydurmayın.
Hiç atamadığınız alanlar için varsayılan değerler vardır: bir int alanı 0'dan başlar. Herhangi bir atamadan önce c.fill yazdırırsanız ekran 0 gösterebilir. Bu sayfa yine sizin yazdığınız atamayı öğretir; ana demoda yazdırmadan önce c.fill = 3; kalsın.
Shelf.java derlenirken javac Cup simgesini bulamazsa, Cup.java'nın Shelf.java yanında olduğunu ve sınıf satırının public class Cup olduğunu kontrol edin. 3 beklerken ekran 0 gösteriyorsa atama satırı eksik olabilir veya yazdırmadan sonra çalışıyor olabilir — c.fill = 3; satırını println(c.fill) üstüne koyun.
Kuruculardan önce
Cup içinde int fill; bildirebilir, Cup c = new Cup(); kurabilir, c.fill = 3; atayabilir ve Shelf'ten c.fill yazdırabilirsiniz. Her iki dosyayı derleyin ve java Shelf çalıştırın. Ekran 3 gösterir. İki nesne iki farklı fill tutabilir. Sonraki sayfa kuruculardır; orada değerleri new nesneyi kurduğu anda ayarlamaya başlarsınız.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek