Nesne yönelimli programlama, en popüler programlama paradigmalarından biridir. Bunun nedeni, hem verileri hem de işlevleri modellemesi ve gerçek dünyadaki nesneler açısından düşünmenize izin vermesidir. Sınıflar, nesneler oluşturmak için ihtiyacınız olan planı sağladıklarından, nesne yönelimli programlamanın temel bir yönüdür.
C#, nesne yönelimli paradigmayı kullanan popüler bir çoklu paradigma programlama dilidir. Bu makalede, C# ile sınıfların nasıl oluşturulacağını ve kullanılacağını öğreneceksiniz.
Sınıf Bildirimi Oluşturma
C#'ta sınıf, aşağıdakileri içerecek bir referans türüdür. hükümsüz sınıfın yeni bir nesnesini oluşturana kadar değer. C#'da yeni bir sınıf oluşturmak için birkaç bileşene ihtiyacınız olacak:
- Bir erişim değiştiricisi.
- bu sınıf anahtar kelime.
- Sınıfa atamak istediğiniz ad.
- Bir çift açık ve kapalı küme parantezi (sınıfın özniteliklerini, yapıcılarını ve yöntemlerini içerecektir).
dahili sınıfMüşteri{ }
Yukarıdaki kod, aynı derlemedeki (derleme dosyası) diğer sınıflar tarafından erişilebilen yeni bir sınıf oluşturur. C#, sınıflarınızın, değişkenlerinizin ve yöntemlerinizin erişilebilirlik düzeylerini denetlemek için kullanabileceğiniz tam olarak altı erişim değiştiricisine sahiptir. Altı erişim değiştiricisi şunlardır:
- halka açık: her sınıf (derlemesinden bağımsız olarak) genel sınıfa ve genel üyelerine (nitelikler, yapıcılar ve yöntemler) erişebilir.
- özel: yalnızca özel sınıf ve üyeleri ona erişebilir.
- korumalı: yalnızca türetilmiş sınıflar (alt ve torun sınıfları) korumalı sınıfa erişebilir.
- dahili: yalnızca aynı derlemedeki sınıflar iç sınıfa erişebilir.
- korumalı dahili: yalnızca aynı derlemedeki sınıflar veya başka bir derlemeden türetilmiş bir sınıf, korumalı dahili sınıfa erişebilir.
- özel korumalı: yalnızca aynı derlemedeki türetilmiş sınıflar özel korumalı sınıfa erişebilir.
Nitelikleri Bildirme ve Erişme
Nitelikler, oluşturduğunuz sınıfların yapı taşlarıdır. Hassas verileri tutarlar ve genellikle özel veya korumalı bir erişim değiştiricisine sahiptirler. Bu nedenle, bu sınıflara harici sınıflardan erişmek için erişimciler ve mutatörler (alıcılar ve ayarlayıcılar) kullanmanız gerekir.
C#, niteliklerinizi, mutatörlerinizi ve erişimcilerinizi aşağıdaki gibi bildirmenize olanak tanır:
dahili sınıfMüşteri
{
// Öznitellikler
özelint Kimlik Numarası;
özel dize Adı;
özelçift Toplam;// ayarlayıcılar
halka açıkgeçersizSetIdNumber(int Kimlik Numarası){ Bu.IdNumber = IdNumber; }
halka açıkgeçersizSetAdı(dize Adı){ Bu.Ad = Ad; }
halka açıkgeçersizSetToplam(çift Toplam){ Bu.Toplam = Toplam; }
// alıcılar
halka açıkintGetIdNumber(){ dönüşBu.Kimlik Numarası; }
halka açık sicim GetName(){ dönüşBu.İsim; }
halka açıkçiftToplam Getir(){ dönüşBu.Toplam; }
}
Diğer popüler nesne yönelimli diller ayrıca yukarıdaki yaklaşımı kullanın. Aslında, istersen Java sınıfları oluştur, yukarıdaki yapıyı kullanmanız gerekecek. Ancak, C# artık nitelikler ve erişimciler oluşturmanın daha kolay bir yoluna sahiptir. C#'da bu sınıf, yukarıdakiyle aynı işleve sahiptir:
dahili sınıfMüşteri
{
public int IdNumber { almak; Ayarlamak; }
genel dize Adı { almak; Ayarlamak; }
ortak çift Toplam { almak; Ayarlamak; }
}
Yukarıdaki sınıf, C#'ın çağırdığı şeyi içerir. özellikleriözniteliklerin (alanlar) ve yöntemlerin bir birleşimi olan. İle birlikte özellikleri, öznitelik bildiriminizi, mutatörlerinizi ve erişimci kodunuzu yarı yarıya azaltabilirsiniz.
Yapıcıları Bildirme
Yapıcılar, bir sınıfın başka bir temel yönüdür. Bir sınıftan bir nesne yaratmak için onun kurucularından birini çağırmanız gerekir. Her kurucunun isteğe bağlı bir erişim değiştiricisi ve sınıfıyla aynı adı vardır. Nesne yönelimli programlama dilleri için genellikle üç tür kurucu vardır:
- Varsayılan yapıcı: argüman almaz ve her özniteliğe varsayılan bir değer sağlar.
- Birincil kurucu: bir veya daha fazla argüman alır (sınıftaki değişkenlerin sayısına bağlı olarak).
- Oluşturucuyu kopyala: argüman olarak başka bir kurucu alır.
C#, yukarıdaki varsayılan ve birincil kurucular için bir şemsiye terime sahiptir—örnek oluşturucular. Bu programlama dilinin ayrıca iki kurucusu daha vardır (özel ve statik). Bu makale üç geleneksel kurucuya odaklanmaktadır.
Varsayılan Oluşturucu
// varsayılan kurucu
halka açık Müşteri()
{
Kimlik Numarası = 0;
isim = "Bilinmeyen";
Toplam = 0;
}
Birincil Oluşturucu
// birincil kurucu
halka açıkMüşteri(int IdNumber, dize Adı, dize CustomerType, çift Toplam)
{
Bu.IdNumber = IdNumber;
Bu.Ad = Ad;
Bu.Toplam = Toplam;
}
Oluşturucuyu Kopyala
// yapıcıyı kopyala
halka açık Müşteri (önceki müşteriMüşteri)
{
Bu.IdNumber = öncekiMüşteri. Kimlik Numarası;
Bu.Ad = öncekiMüşteri. İsim;
Bu.Toplam = öncekiMüşteri. Toplam;
}
Yöntem Oluşturma
Yöntemler çok önemli bir sınıf bileşeni değildir, ancak faydalıdırlar. Bir sınıfın bir veya daha fazla yöntemi olabilir. Bir yöntemin bir erişim değiştiricisi, bir dönüş türü, bir adı ve bir gövdesi vardır.
// yöntem
halka açık dize MüşteriAyrıntısı()
{
dönüş " İD: " + Kimlik Numarası + " İsim: " + İsim + " Toplam: " + Toplam;
}
Yukarıdaki kod, müşteri nesnesinin bir dize temsilini döndürür.
Nesneler Oluşturma
Eksiksiz bir sınıf oluşturup onu nitelikler, kurucular ve bir yöntemle donattıktan sonra, farklı kurucuları kullanarak nesneler oluşturmaya başlayabilirsiniz. Özniteliği olmayan bir nesne oluşturmak için varsayılan kurucuyu kullanabilirsiniz:
Müşteri John = yeni Müşteri();
Yukarıdaki kod satırı, varsayılan bir müşteri oluşturur ve onu, adı verilen bir değişkene atar. John. İle birlikte John, her müşteri özelliğinin varsayılan değerine erişebilirsiniz.
Konsol.Yazı çizgisi(John.İsim);
Yukarıdaki kodu yürütmek, konsolda aşağıdakileri yazdırır:
Bilinmeyen
Ayrıca John müşteri sınıfındaki herhangi bir yönteme erişmek için değişken.
Konsol.Yazı çizgisi(John.MüşteriAyrıntısı());
Yukarıdaki kod satırını yürütmek, konsolda aşağıdaki çıktıyı yazdırır:
Kimlik: 0 İsim: bilinmiyor Toplam: 0
Niteliklere sahip bir nesne oluşturmak için birincil kurucuyu kullanırsınız:
Müşteri John = yeni Müşteri (1001, "John Doe", 250.20);
Konsol.Yazı çizgisi(John.MüşteriAyrıntısı());
Yukarıdaki kodu çalıştırmak, konsolda aşağıdaki çıktıyı yazdırır:
İD: 1001 İsim: JohngeyikToplam: 250.2
Yukarıdaki nesnenin bir kopyasını oluşturmak için kopya oluşturucuyu kullanabilirsiniz:
Müşteri Johnny = yeni Müşteri (John);
Konsol.Yazı çizgisi(Johnny.MüşteriAyrıntısı());
Yukarıdaki kodu çalıştırmak, konsolda aşağıdaki çıktıyı yazdırır:
İD: 1001 İsim: JohngeyikToplam: 250.2
Gördüğünüz gibi kopya kurucu, birincil kurucunun bir kopyasıdır. Kopya oluşturucu, argüman olarak varsayılan bir kurucu da alabilir:
Müşteri John = yeni Müşteri();
Müşteri Johnny = yeni Müşteri (John);
Konsol.Yazı çizgisi(Johnny.MüşteriAyrıntısı());
Yukarıdaki kodu çalıştırmak, konsolda aşağıdaki çıktıyı yazdırır:
Kimlik: 0 İsim: bilinmiyor Toplam: 0
Artık C# Sınıfları Oluşturabilir ve Kullanabilirsiniz
Sınıfları tanımlamak ve onlardan nesneler oluşturmak için C#'ta nesne yönelimli paradigmayı kullanabilirsiniz. Her sınıf için, nesnelerinin nitelikleri üzerinde işlem yapabilen yöntemler oluşturabilirsiniz.
Bununla birlikte, aşina olmanız gereken tek şey nesne yönelimli paradigma değildir. İlk üç programlama paradigması zorunlu, nesne yönelimli ve işlevseldir.