Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Deklarasikan kelas dengan menggunakan class kata kunci, seperti yang ditunjukkan dalam contoh berikut:
class TestClass
{
// Methods, properties, fields, events, delegates
// and nested classes go here.
}
C# hanya mendukung warisan tunggal. Dengan kata lain, kelas hanya dapat mewarisi implementasi dari satu kelas dasar. Namun, kelas dapat mengimplementasikan lebih dari satu antarmuka.
Referensi bahasa C# mendokumentasikan versi bahasa C# yang paling baru dirilis. Ini juga berisi dokumentasi awal untuk fitur dalam pratinjau publik untuk rilis bahasa yang akan datang.
Dokumentasi mengidentifikasi fitur apa pun yang pertama kali diperkenalkan dalam tiga versi terakhir bahasa atau dalam pratinjau publik saat ini.
Petunjuk / Saran
Untuk menemukan kapan fitur pertama kali diperkenalkan di C#, lihat artikel tentang riwayat versi bahasa C#.
Untuk informasi selengkapnya tentang kelas, antarmuka, dan warisan, lihat artikel tentang warisan di bagian dasar-dasar.
Anda dapat mendeklarasikan kelas langsung dalam namespace. Jangan menumpuk kelas-kelas ini dalam kelas lain. Anda dapat membuat kelas-kelas ini baik public atau internal. Secara default, kelas adalah internal.
Anda dapat mendeklarasikan anggota kelas, termasuk kelas berlapis, sebagai public, , protected internalprotected, internal, private, atau private protected. Secara default, anggota adalah private.
Untuk informasi selengkapnya, lihat Pengubah Akses.
Anda dapat mendeklarasikan kelas generik yang memiliki parameter jenis. Untuk informasi selengkapnya, lihat Kelas Generik.
Kelas dapat berisi deklarasi anggota berikut:
- Konstruktor
- Konstanta
- Bidang
- Penyelesai
- Metode
- Atribut
- Indexers
- Operator
- Peristiwa
- Delegasi
- Kelas
- Antarmuka
- Jenis struktur
- Jenis enumerasi
Contoh
Contoh berikut menunjukkan mendeklarasikan bidang kelas, konstruktor, dan metode. Ini juga menunjukkan instans objek dan mencetak data instans. Dalam contoh ini, dua kelas dideklarasikan. Kelas pertama, Child, berisi dua bidang privat (name dan age), dua konstruktor publik, dan satu metode publik. Kelas kedua, StringTest, berisi Main.
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.
*/
Komentar
Anda hanya dapat mengakses bidang privat (name dan age) melalui metode Child publik kelas . Misalnya, Anda tidak dapat mencetak nama anak dari Main metode dengan menggunakan pernyataan seperti ini:
Console.Write(child1.name); // Error
Mengakses anggota privat dari Child hanya Main dimungkinkan jika Main merupakan anggota kelas. Jenis yang dideklarasikan di dalam kelas tanpa pengubah akses default ke private, sehingga anggota data dalam contoh ini masih private jika kata kunci dihapus. Terakhir, untuk objek yang dibuat dengan menggunakan konstruktor tanpa parameter (child3), bidang diinisialisasi age ke nol secara default.
Spesifikasi bahasa C#
Untuk informasi selengkapnya, lihat Spesifikasi Bahasa C#. Spesifikasi bahasa adalah sumber definitif untuk sintaks dan penggunaan C#.