Nesneler
ok yazan bir beep metoduyla Chip adlı bir sınıf yazın. Bu sayfada metot static değildir. Pine içinde Main'i tutun ve Chip c = new Chip(); ile bir chip kurun, sonra c.beep(); çağırı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: ok. new sözcüğü sınıftan bir nesne kurar. c değişkeni o nesneyi tutar. beep'i c üzerinde çağırırsınız; yalnız sınıf adı üzerinde değil. Bu kurulan nesne — ve onu kullanan çağrı — bu sayfanın öğrettiği şeydir. Başlangıç genel sınıf adını Pine tutun.
Sınıftan bir nesne
Sınıf hâlâ adlı türdür. Nesne, o türden kurulan bir değerdir. new Chip() satırı C#'tan o değeri kurmasını ister. Bunu türü Chip olan bir değişkende saklar, sonra her nesneye ait metotlara o değişkenle ulaşırsınız.
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 bir Badge.show(); static çağrı kalıntısıysa silin. Artakalan her down özyinelemesini 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 Chip yazın. Chip içinde void beep() yazın — bu başlıkta static sözcüğü yoktur. Gövde tek yazma satırıdır: Console.WriteLine("ok");. void tutun. Metot sayı döndürmez. Bu sayfada Chip içinde Main yoktur. Çalıştırmadan önce dosyayı kaydedin.
İlk kutulu program yalnızca Chip'i gösterir; türü temiz okuyasınız diye. Sonraki kutulu programlar Pine'ın bir chip, sonra iki chip kurduğu tutulan şekillerdir.
using System;
public class Chip
{
void beep()
{
Console.WriteLine("ok");
}
}
Pine chip'i kurar, sonra beep çağırır
Pine public static void Main() tutmaya devam eder. Main içinde iki satır yazın: önce Chip c = new Chip();, sonra c.beep();. İlk satır Chip türünde bir c değişkeni bildirir ve onu yeni bir nesneyle doldurur. İkinci satır o nesne üzerinde beep çağırır. Nokta değişken adından sonra gelir; yalnız sınıf adından sonra değil. Bu sayfada Badge.show(); yazmazsınız. O, sınıflar dersindeki static çağrıydı.
using System;
public class Pine
{
public static void Main()
{
Chip c = new Chip();
c.beep();
}
}
public class Chip
{
void beep()
{
Console.WriteLine("ok");
}
}
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 Chip() ifadesi bir nesne kurar. O nesne c'de saklanır. c.beep() çağrısı o nesne için beep'e girer. Metot ok yazar ve döner. Sonra Pine biter. Ekrandaki sözcük, new nesneyi kurduktan sonra nesnenin metodundan geldi.
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 Chip c = new Chip(); ile c.beep(); tutun, beep ise Chip içinde kalsın. Ekran ok gösterir. Ekran ready gösteriyorsa artakalan bir Badge.show(); çağrısı hâlâ çalışıyordur. Ekran Chip harflerini gösteriyorsa yazma satırında tırnak vardır: Console.WriteLine("Chip");. Yanlış satır gösteren bir ekran için .NET SDK'yı yeniden kurmayın.
Bir çalıştırmayı bir kez daha sırayla yürüyün. C# Pine.Main'den başlar. İlk ifade new Chip() ile bir nesne kurar ve onu c'ye koyar. İkinci ifade c.beep() çağırır. beep içinde WriteLine ok yazar. Sonra beep biter; Main'de iş kalmamıştır, program sona erer. Bu sayfada Console.WriteLine("ok"); ifadesini Pine içine koymadınız. Chip altına koyup nesne değişkeni üzerinden istediniz.
Sınıfı dosyadaki plan gibi, nesneyi de bu çalıştırma için bellekte kurulan bir parça gibi düşünün. Her new Chip() başka bir parça kurar. Değişken parçayı adlandırır; sonraki satırlar ona ulaşabilsin. O ad olmadan, kurulan parçanın bu sayfada beep için tutacağı yoktur.
Çağrı neden yalnız Chip değil, c üzerinden
Sınıflar sayfasında static bir metot Badge.show() ile tür adından çağrılabilirdi. Burada beep'te static sözcüğü yoktur. C# önce bir nesne bekler. Nesne olmadan Chip.beep(); yazmak bu sayfanın başlangıç şekline uymaz. new ile kurun, sonucu bir değişkende tutun, sonra o değişken üzerinden çağırın.
Yalnız new Chip(); yazıp saklamazsanız yine bir nesne kurmuş olursunuz, ama beep çağırmak için ad kalmaz. Bu sayfada değişkeni tutun: Chip c = new Chip(); sonra c.beep();. Değişken, new bittikten sonra nesneye ulaşma yoludur.
Artakalan bir static demo Main'i karıştırabilir. Hâlâ Badge.show(); çağıran dosya önceki dersin şeklidir. Bu sayfa için Chip ve Pine ile new satırını tutun. Burada Badge'e ihtiyacınız yoktur.
İki nesne, iki beep
Aynı sınıftan birden fazla nesne kurabilirsiniz. Her new Chip() ayrı bir nesne yapar. Her nesne kendi beep'ini çalıştırabilir. Sınıf metni ortaktır; nesneler aynı değer değildir.
using System;
public class Pine
{
public static void Main()
{
Chip a = new Chip();
Chip b = new Chip();
a.beep();
b.beep();
}
}
public class Chip
{
void beep()
{
Console.WriteLine("ok");
}
}
Yeniden dotnet run ile çalıştırın. Ekran iki satır göstermelidir: ok, sonra ok. İlk satır a'dan geldi. İkinci satır b'den. İkisi de Chip içindeki aynı beep metot metnini kullandı, ama her çağrı new ile kurulan farklı bir nesne üzerinde koştu.
Ekran yalnızca bir ok gösteriyorsa her iki çağrının da var olup olmadığını ve her iki değişkenin de new ile kurulup kurulmadığını kontrol edin. Chip b = a; yazmak ikinci bir nesne kurmaz; b'yi a ile aynı nesneye işaret ettirir. O fikir sonraki sayfaları bekler. Bu sayfada iki nesne istediğinizde iki new Chip() ifadesi kullanın.
İsterseniz değişken adını c'den unit'e çevirebilirsiniz: Chip unit = new Chip(); sonra unit.beep();. Metot gövdesi hâlâ o sözcüğü yazıyorsa ekran ok kalır. Değişken adı sizindir; tür adı Chip ile new Chip() ifadesi hâlâ uyuşmalıdır.
Bu sayfa alanlar için ne bırakır
Bu sayfa henüz chip içinde bir sayı veya sözcük saklamaz. Alanlar — her nesnede veri tutan adlar — sonraki sayfadır. Burada nesne new sonrasında vardır ve örnek metot beep yalnızca yazar. Tür olarak sınıf ile kurulan değer olarak bir nesne arasındaki ayrımı görmek için bu yeterlidir.
Chip'i Pine'ın süslü parantezlerinin içine yuvalamayın. Bu sayfada iki sınıf dosyada kardeştir. Chip metotları Chip içinde oturur. Main Pine içinde oturur. beep içindeki yazılan sözcüğü ping yapıp yeniden çalıştırabilirsiniz. Ekran Chip'e koyduğunuz dizeyi izlemelidir. Pine'daki new ve çağrı şekli aynı kalır.
Derleme Pine'ı derlerken Chip'i bulamıyorsa, public class Chip'in aynı dosyada olduğunu ve sınıf satırının gerçekten Chip dediğini kontrol edin. Çalıştırma hiçbir şey yazmıyorsa, Main'in new satırından sonra hâlâ c.beep(); çağırdığını ve beep'in hâlâ WriteLine içerdiğini doğrulayın.
Chip'i void beep() ile yazabilir, Chip c = new Chip(); ile bir nesne kurabilir ve Pine.Main'den c.beep(); çağırabilirsiniz. dotnet run ile çalıştırın. Ekran ok gösterir. İkinci bir new Chip() kendi başına beep edebilen başka bir nesne kurar. Chip'i plan gibi, her new Chip()'i adlandırabileceğiniz kurulu bir parça gibi düşünün. Pine, dotnet run ile açtığınız kapı olarak kalır. Sonraki sayfa alanlardır; orada her nesne kendi saklanan verisini tutmaya başlar.
🧠 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