class (C# Başvurusu)
Sınıflar, aşağıdaki örnekte gösterildiği gibi anahtar sözcüğü class
kullanılarak bildirilir:
class TestClass
{
// Methods, properties, fields, events, delegates
// and nested classes go here.
}
Açıklamalar
C# dilinde yalnızca tek devralma işlemine izin verilir. Başka bir deyişle, bir sınıf yalnızca bir temel sınıftan uygulamayı devralabilir. Ancak, bir sınıf birden fazla arabirim uygulayabilir. Aşağıdaki tabloda sınıf devralma ve arabirim uygulaması örnekleri gösterilmektedir:
Devralma | Örnek |
---|---|
Hiçbiri | class ClassA { } |
Tekli | class DerivedClass : BaseClass { } |
Hiçbiri, iki arabirim uygular | class ImplClass : IFace1, IFace2 { } |
Tek, tek bir arabirim uygular | class ImplDerivedClass : BaseClass, IFace1 { } |
Diğer sınıflar içinde iç içe değil, doğrudan bir ad alanı içinde bildirdiğiniz sınıflar genel veya iç olabilir. Sınıflar varsayılan olarakdır internal
.
İç içe sınıflar da dahil olmak üzere sınıf üyeleri genel, korumalı iç, korumalı, iç, özel veya özel korumalı olabilir. Üyeler varsayılan olarak vardır private
.
Daha fazla bilgi için bkz . Erişim Değiştiricileri.
Tür parametrelerine sahip genel sınıflar bildirebilirsiniz. Daha fazla bilgi için bkz . Genel Sınıflar.
Bir sınıf aşağıdaki üyelerin bildirimlerini içerebilir:
Örnek
Aşağıdaki örnekte sınıf alanlarının, oluşturucuların ve yöntemlerin bildirilmesi gösterilmektedir. Ayrıca nesne örnekleme ve yazdırma örneği verilerini gösterir. Bu örnekte iki sınıf bildirilir. birinci sınıfı, Child
iki özel alan (name
ve age
), iki ortak oluşturucu ve bir ortak yöntem içerir. İkinci sınıf olan StringTest
, öğesini içermek Main
için kullanılır.
class Child
{
private int age;
private string name;
// Default constructor:
public Child()
{
name = "N/A";
}
// Constructor:
public Child(string name, int age)
{
this.name = name;
this.age = age;
}
// Printing method:
public void PrintChild()
{
Console.WriteLine("{0}, {1} years old.", name, age);
}
}
class StringTest
{
static void Main()
{
// Create objects by using the new operator:
Child child1 = new Child("Craig", 11);
Child child2 = new Child("Sally", 10);
// Create an object using the default constructor:
Child child3 = new Child();
// Display results:
Console.Write("Child #1: ");
child1.PrintChild();
Console.Write("Child #2: ");
child2.PrintChild();
Console.Write("Child #3: ");
child3.PrintChild();
}
}
/* Output:
Child #1: Craig, 11 years old.
Child #2: Sally, 10 years old.
Child #3: N/A, 0 years old.
*/
Açıklamalar
Önceki örnekte özel alanlara (name
ve age
) yalnızca sınıfın genel yöntemiyle erişilebildiğine Child
dikkat edin. Örneğin, aşağıdaki gibi bir deyimi kullanarak yönteminden Main
çocuğun adını yazdıramazsınız:
Console.Write(child1.name); // Error
öğesinin Main
özel üyelerine Child
erişmenin mümkün olması için sınıfın üyesi olması Main
gerekir.
Varsayılan olarak erişim değiştiricisi private
olmayan bir sınıfın içinde bildirilen türler, bu nedenle bu örnekteki veri üyeleri anahtar sözcüğü kaldırılmışsa yine de olur private
.
Son olarak, parametresiz oluşturucu ()child3
age
kullanılarak oluşturulan nesne için alanın varsayılan olarak sıfır olarak başlatıldığına dikkat edin.
C# dili belirtimi
Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.