Örnek metotlar
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. Pine içinde Main'i tutun ve Jar j = new Jar(3); ile bir jar kurun, j.bump(); çağırın, sonra j.fill yazın. Her iki türü aynı öğretim dosyasında tutun; böylece dotnet run sade kalır. dotnet run ile çalıştırın. Ekran tek 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. Başlangıç genel sınıf adını Pine tutun.
Nesneye ait bir metot
Daha önceki metot sayfalarında Main'den önünde nesne olmadan bir ad çağırırdınız. Burada metot sınıfın üzerindedir, ama ona bir jar değişkeni üzerinden ulaşırsınız: j.bump(). O çağrı, j'nin adlandırdığı jar'ın alanlarını kullanır. İkinci bir jar kendi fill'ini tutardı.
Pine dosyasını açın. Başlangıç sınıf adı Pine kalır. Bu sayfa başlatıcıyı yeniden adlandırmaz. Hâlâ Main'de tuttuğunuz her şey this sayfasından kalan bir Tin t = new Tin(7); çağrısıysa silin. Artakalan her Tin sınıfını silin. Her ReadLine satırını silin. Tutacağınız dosyada yazı bekleyişi yoktur.
Pine'ın süslü parantezlerinin dışında — yine aynı dosyada — public class Jar yazı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 sayfa this istemez. Sonra örnek metodu yazın: void bump() { fill = fill + 1; }. Bu sayfada Jar içinde Main yoktur. Çalıştırmadan önce dosyayı kaydedin.
Metot başlığı void ister çünkü bump yazılacak bir değer döndürmez. Yapıcıda hâlâ void yoktur — o farkı açık tutun.
using System;
public class Jar
{
int fill;
Jar(int n)
{
fill = n;
}
void bump()
{
fill = fill + 1;
}
}
Pine bir jar kurar ve bump çağırır
Pine public static void Main() tutmaya devam eder. Main içinde sırayla üç satır yazın: Jar j = new Jar(3);, sonra j.bump();, sonra Console.WriteLine(j.fill);. Yapıcı 3'ü saklar. j.bump() çağrısı bir ekler. Yazım yeni değeri gösterir. Bu sayfada Tin t = new Tin(7); yazmazsınız. O, this dersiydi.
using System;
public class Pine
{
public static void Main()
{
Jar j = new Jar(3);
j.bump();
Console.WriteLine(j.fill);
}
}
public class Jar
{
int fill;
Jar(int n)
{
fill = n;
}
void bump()
{
fill = fill + 1;
}
}
Tutulan dosyayı yukarıdan okuyun. using System; kısa adları hazırlar. public class Pine başlatıcıdır. public static void Main() çalışma zamanının başladığı yerdir. new Jar(3) ifadesi bir jar kurar ve fill içine 3 saklar. j.bump() çağrısı aynı nesnede bump'a girer. Gövde fill = fill + 1 yazar; böylece fill 4 olur. Sonra Main j.fill yazar ve ekran 4 gösterir.
dotnet run ile çalıştırın. Program bir satır yazar ve durur. Sizin bir şey yazmanızı beklemez. dotnet run bekliyorsa dosyada hâlâ ReadLine vardır. O satırı silin; Pine'da new Jar(3), j.bump() ve yazmayı tutun, Jar içinde ise bump kalsın. Ekran 4 gösterir. Ekran 7 gösteriyorsa artakalan bir Tin demosu hâlâ çalışıyordur. Ekran 3 gösteriyorsa bump çağrısı eksik olabilir veya yazımdan sonra çalışıyor olabilir.
Önünde j. olmadan bump(); yazarsanız, bu Main şeklinde derleme reddeder. Örnek metot bir nesne ister. Statik bir çağrıymış gibi Jar.bump(); yazarsanız, o 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 saklardınız. O hâlâ işe yarar. Bu sayfa, nesne zaten varken sonra çağırabileceğiniz bir metot ekler. this.size = size; ile kalan bir Tin t = new Tin(7); başka bir derstir. Bu sayfa için Jar ile Pine ve j.bump(); tutun.
Main içinde hâlâ j.fill = j.fill + 1; yazabilirdiniz. Bu ders o değişikliği bump içine taşır; böylece nesne eylemi taşır. Yalnız Console.WriteLine(j); yazmak temiz bir 4 göstermez. Saklanan sayıyı görmek için Console.WriteLine(j.fill); yazın.
Bir jar üzerinde iki bump
Yazmadan ö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 yazın. Bu kontrol küçük bir ikinci Pine demosuna sığar.
using System;
public class Pine
{
public static void Main()
{
Jar j = new Jar(3);
j.bump();
j.bump();
Console.WriteLine(j.fill);
}
}
public class Jar
{
int fill;
Jar(int n)
{
fill = n;
}
void bump()
{
fill = fill + 1;
}
}
Yeniden dotnet run ile çalıştırın. Ekran 5 göstermelidir. Her bump çağrısı aynı nesne üzerinde çalıştı ve bir tane 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 yazıyordur. 7 veya başka bir kalıntı sayı gösteriyorsa dosyada eski bir Tin demosu kalmış olabilir. new Jar(3) ve bump çağrılarını tutun.
Bu sayfa static için ne bırakır
Bu sayfa metodu nesne üzerinden çağırır: j.bump(). Daha sonraki bir sayfa — static — önünde nesne olmadan sınıf adının kendisine ait metotları ve alanları gösterir. Burada örnek çağrıda kalın. Zaten bilmiyorsanız bu sayfada static void bump() uydurmayın; dersin hedefi nesne üzerindeki çağrıdır.
Jar'ı Pine'ın süslü parantezlerinin içine yuvalamayın. Bu sayfada iki sınıf dosyada kardeş olarak durur. Derleme Pine'ı derlerken Jar'ı bulamazsa public class Jar'ın aynı dosyada olduğunu kontrol edin. Ekran 0 gösteriyorsa yapıcıda saklama eksik olabilir veya bump hiç çalışmıyordur — Jar(int n) { fill = n; } ve yazmadan önce j.bump(); tutun.
int fill; bildirebilir, Jar(int n) { fill = n; } ve void bump() { fill = fill + 1; } yazabilir, Pine.Main'den Jar j = new Jar(3);, j.bump(); çalıştırıp sonra j.fill yazabilirsiniz. dotnet run ile çalıştırın. Ekran 4 gösterir. Örnek metot o nesne üzerinde çalıştı ve alanını değiştirdi. bump'ı jar var olduktan sonra yapabileceği bir eylem gibi düşünün. Pine, dotnet run ile açtığınız kapı olarak kalır. 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();. Yazmayı j.fill üzerinde tutun. Bu üç alışkanlık, ilerlemadan önce bu sayfanın kontrol noktasıdır.
🧠 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