Yükleniyor...

Java'da örnek metotlar

Jar.java içinde fill adlı bir int alanı, fill = n; yapan bir Jar(int n) yapıcısı ve fill = fill + 1; çalıştıran bir örnek metot void bump() olan Jar sınıfını yazın. Desk.java içinde Jar j = new Jar(3); ile bir jar kurun, j.bump(); çağırın, sonra j.fill yazdırın. Her iki dosyayı derleyin ve java Desk çalıştırın. Ekran bir satır göstermelidir: 4. Metot o tek nesne üzerinde çalışır ve alanını değiştirir. Metodu nesne değişkeni üzerinden çağırmak bu sayfanın öğrettiği şeydir.

Nesneye ait bir metot

Daha önceki metot sayfalarında adı main içinden önde nesne olmadan çağırıyordunuz. Burada metot sınıfta durur, ama ona jar değişkeni üzerinden ulaşırsınız: j.bump(). Bu çağrı, j'nin adlandırdığı jar'ın alanlarını kullanır. İkinci bir jar kendi fill'ini tutar.
Önce Jar.java oluşturun. Public class satırı public class Jar'dır. Burada eski bir Tin veya Box sınıf adı bırakmayın. Süslü parantezlerin içinde int fill; bildirin. Yapıcıyı Jar(int n) { fill = n; } olarak farklı adlarla yazın, böylece bu sayfanın this'e ihtiyacı olmaz. Sonra örnek metodu yazın:
void bump() { fill = fill + 1; }
Jar.java içinde main yoktur. Derlemeden önce kaydedin. Metot başlığı void ister çünkü bump yazdırılacak bir değer döndürmez. Yapıcıda hâlâ void yoktur — bu farkı net tutun.

Jar with bump method

java
public class Jar {
    int fill;

    Jar(int n) {
        fill = n;
    }

    void bump() {
        fill = fill + 1;
    }
}

Desk bir jar kurar ve bump çağırır

Aynı klasörde Desk.java oluşturun. Public class satırı public class Desk'tir. main içinde sırayla üç satır yazın: Jar j = new Jar(3);, sonra j.bump();, sonra System.out.println(j.fill);. Yapıcı 3'ü saklar. j.bump() çağrısı bir ekler. Yazdırma yeni değeri gösterir.
Desk'i main'i tutan sınıf olarak bırakın. Bu ders için main'i Jar içine koymayın. this sayfasından kalan bir Lab dosyası hâlâ klasördeyse, bu ders için java Lab çalıştırmayın — Jar.java ve Desk.java'yı derledikten sonra java Desk çalıştırın.

Desk one bump

java
public class Desk {
    public static void main(String[] args) {
        Jar j = new Jar(3);
        j.bump();
        System.out.println(j.fill);
    }
}

Her iki dosyayı tutan klasörden javac Jar.java Desk.java çalıştırın. İkisi de tamam olduğunda önce Jar.java'yı, sonra Desk.java'yı derleyebilirsiniz. Parantezler, süslü parantezler ve noktalı virgüller uyuşunca javac kendi satırını yazmaz. Sonra java Desk çalıştırın — java Desk.java değil, java Jar 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: 4. 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; Desk'te new Jar(3), j.bump() ve yazdırmayı, Jar'da bump'ı tutun.
Çalıştırmayı bir kez adım adım izleyin. Java Desk.main'den başlar. new Jar(3) ifadesi bir jar kurar ve fill'e 3 saklar. j.bump() çağrısı aynı nesne üzerinde bump'a girer. Gövde fill = fill + 1 yazar, böylece fill 4 olur. Sonra main j.fill yazdırır ve ekran 4 gösterir.
Önde j. olmadan bump(); yazarsanız, bu main şeklinde javac reddeder. Örnek metot bir nesneye ihtiyaç duyar. Jar.bump(); yazarsanız sanki static bir çağrıymış gibi, o bir sonraki dersin fikridir — bu sayfanın değil. j.bump(); tutun.

this ve düz alan atamasıyla karşılaştırma

this sayfasında eşleşen adlarla yapıcı içinde bir alan saklıyordunuz. O hâlâ çalışır. Bu sayfa, nesne zaten varken sonra çağırabileceğiniz bir metot ekler. this.size = size; içeren kalmış bir Tin t = new Tin(7); demosu başka bir derstir. Bu sayfa için Jar, Desk ve j.bump(); tutun.
main içinde hâlâ j.fill = j.fill + 1; yazabilirsiniz. Bu ders o değişikliği bump'a taşır, böylece nesne eylemi taşır. System.out.println(j); ile yalnız j'yi yazdırmak temiz bir 4 göstermez. Saklanan sayıyı görmek için j.fill yazdırın.

Bir jar üzerinde iki bump

Yazdırmadan önce j.bump();'ı iki kez çağırabilirsiniz. new Jar(3) ile başlayın, bir bump ile 4'e, ikinci bump ile 5'e gidin, sonra yazdırın. Bu kontrol küçük bir ikinci Desk demosuna sığar.

Desk two bumps

java
public class Desk {
    public static void main(String[] args) {
        Jar j = new Jar(3);
        j.bump();
        j.bump();
        System.out.println(j.fill);
    }
}

Yeniden derleyip çalıştırın: javac Jar.java Desk.java, sonra java Desk. Ekran 5 göstermelidir. Her bump çağrısı aynı nesne üzerinde çalıştı ve bir daha ekledi. Jar k = j; yazmak ikinci bir nesne kurmaz — iki ayrı fill istediğinizde iki new Jar(...) çağrısı kullanın. Bu sayfa için bir jar üzerinde iki bump, metodun iki kez çalıştığını görmeye yeter.
Ekran hâlâ 3 gösteriyorsa bump çağrıları eksik olabilir veya main hâlâ onları çağırmadan önce yazdırıyor olabilir. 7 veya başka bir kalmış sayı gösteriyorsa dosyada hâlâ eski bir Tin demosu olabilir. new Jar(3) ve bump çağrılarını tutun.

static için ne kalır

Bu sayfa metodu nesne üzerinden çağırır: j.bump(). Sonraki bir sayfa — static — önde nesne olmadan sınıf adının kendisine ait metotları ve alanları gösterir. Burada örnek çağrıyla kalın. Zaten bilmiyorsanız bu sayfada static void bump() uydurmayın; dersin hedefi nesne üzerindeki çağrıdır.
Desk.java derlenirken javac Jar'ı bulamazsa, Jar.java'nın aynı klasörde olduğunu ve sınıf satırının public class Jar olduğunu kontrol edin. Ekran 0 gösteriyorsa yapıcıda saklama eksik olabilir veya bump hiç çalışmamış olabilir — yazdırmadan önce Jar(int n) { fill = n; } ve j.bump(); tutun.
Klasör hâlâ this sayfasından Tin.java veya Lab.java tutuyorsa dokunmayın ya da yalnızca derleme komutunu karıştırıyorlarsa silin. Bu dersin Jar ve Desk çiftini derledikten sonra java Desk çalıştırın.

static'ten önce

int fill; bildirebilir, Jar(int n) { fill = n; } ve void bump() { fill = fill + 1; } yazabilir ve Desk'ten Jar j = new Jar(3);, j.bump();, sonra j.fill yazdırabilirsiniz. Her iki dosyayı derleyin ve java Desk çalıştırın. Ekran 4 gösterir. Örnek metot o nesne üzerinde çalıştı ve alanını değiştirdi. Sonraki sayfa static'tir; bazı üyeler önde nesne değişkeni olmadan sınıf adına aittir.
void'u metotta tutun, yapıcıda değil. Çağrıdan önce nesneyi tutun: j.bump();. Yazdırma j.fill üzerinde kalsın. Bu üç alışkanlık, ilerlemadan önce bu sayfanın kontrol noktasıdır.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

❓
5
Sorular
🎯
70%
Geçmek İçin
♾️
∞
Süre
🔄
∞
Deneme

📝 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