Bagikan melalui


Gambaran umum teknik berorientasi objek di C#

Dalam C#, definisi jenis—kelas, struct, atau rekaman—seperti cetak biru yang menentukan apa yang dapat dilakukan jenis tersebut. Objek pada dasarnya adalah blok memori yang dialokasikan dan dikonfigurasi sesuai dengan cetak biru. Artikel ini memberikan gambaran umum tentang cetak biru ini dan fiturnya. Artikel berikutnya dalam seri ini memperkenalkan objek.

Enkapsulasi

Enkapulasi terkadang disebut sebagai pilar pertama atau prinsip pemrograman berorientasi objek. Kelas atau struktur dapat menentukan seberapa mudah diakses setiap anggotanya untuk membuat kode di luar kelas atau struktur. Anggota yang tidak ditujukan untuk pihak di luar kelas atau kumpulan disembunyikan untuk mengurangi potensi kesalahan pengkodean atau penyalahgunaan berbahaya. Untuk informasi selengkapnya, lihat tutorial pemrograman berorientasi objek .

Anggota

Anggota jenis mencakup semua metode, bidang, konstanta, properti, dan peristiwa. Dalam C#, tidak ada variabel atau metode global karena ada dalam beberapa bahasa lain. Bahkan titik masuk program, Main metode , harus dideklarasikan dalam kelas atau struktur (secara implisit ketika Anda menggunakan pernyataan tingkat atas).

Daftar berikut mencakup semua jenis anggota yang dapat dideklarasikan dalam kelas, struktur, atau rekaman.

  • Bidang
  • Konstanta
  • Karakteristik
  • Metode
  • Konstruktor
  • Peristiwa
  • Finalizer
  • Pengindeks
  • Para Operator
  • Jenis Berlapis

Untuk informasi selengkapnya, lihat Anggota.

Aksesibilitas

Beberapa metode dan properti dimaksudkan untuk dipanggil atau diakses dari kode di luar kelas atau struktur, yang dikenal sebagai kode klien. Metode dan properti lain mungkin hanya untuk digunakan di kelas atau struktur itu sendiri. Penting untuk membatasi aksesibilitas kode Anda sehingga hanya kode klien yang dimaksudkan yang dapat mencapainya. Anda menentukan seberapa mudah diakses jenis Anda dan anggotanya ke kode klien dengan menggunakan pengubah akses berikut:

Aksesibilitas defaultnya adalah private.

Pewarisan

Kelas (tetapi bukan struktur) mendukung konsep warisan. Sebuah kelas yang diturunkan dari kelas lain, yang disebut kelas dasar, secara otomatis memiliki semua anggota publik, terlindungi, dan internal dari kelas dasar, kecuali konstruktor dan finalizernya.

Kelas dapat dinyatakan sebagai abstrak, yang berarti bahwa satu atau beberapa metode mereka tidak memiliki implementasi. Meskipun kelas abstrak tidak dapat diinstansiasi secara langsung, kelas tersebut dapat berfungsi sebagai kelas dasar untuk kelas lain yang menyediakan implementasi yang hilang. Kelas juga dapat dinyatakan sebagai disegel untuk mencegah kelas lain mewarisinya.

Untuk informasi selengkapnya, lihat Warisan dan Polimorfisme.

Antarmuka

Kelas, struktur, dan rekaman dapat mengimplementasikan beberapa antarmuka. Menerapkan dari sebuah antarmuka berarti bahwa sebuah tipe mengimplementasikan semua metode yang didefinisikan dalam antarmuka tersebut. Untuk informasi selengkapnya, lihat Antarmuka.

Jenis Generik

Kelas, struktur, dan rekaman dapat didefinisikan dengan satu atau beberapa parameter jenis. Kode pihak klien menyuplai jenisnya saat membuat instans dari jenis tersebut. Misalnya, List<T> kelas di System.Collections.Generic namespace didefinisikan dengan satu parameter jenis. Kode klien membuat instance dari List<string> atau List<int> untuk menentukan jenis yang terdapat dalam daftar. Untuk informasi selengkapnya, lihat Generik.

Jenis Tipe Statis

Kelas (tetapi bukan struktur atau rekaman) dapat dinyatakan sebagai static. Kelas statis hanya dapat berisi anggota statis dan tidak dapat dibuat dengan new kata kunci. Satu salinan kelas dimuat ke dalam memori ketika program dimuat, dan anggotanya diakses melalui nama kelas. Kelas, struktur, dan rekaman dapat berisi anggota statis. Untuk informasi selengkapnya, lihat Kelas statis dan anggota kelas statis.

Jenis Berlapis

Kelas, struct, atau record dapat disarangkan di dalam kelas, struct, atau record lainnya. Untuk informasi selengkapnya, lihat Tipe Bersarang.

Jenis Parsial

Anda dapat menentukan bagian dari kelas, struct, atau metode dalam satu file kode dan bagian lain dalam file kode terpisah. Untuk informasi selengkapnya, lihat Kelas dan Metode Parsial.

Penginisialisasi Objek

Anda dapat membuat instans dan menginisialisasi objek kelas atau struktur, dan kumpulan objek, dengan menetapkan nilai ke propertinya. Untuk informasi selengkapnya, lihat Cara menginisialisasi objek dengan menggunakan penginisialisasi objek.

Jenis Anonim

Dalam situasi di mana tidak nyaman atau tidak perlu membuat kelas bernama, Anda menggunakan jenis anonim. Anggota data terberi nama mendefinisikan tipe anonim. Untuk informasi selengkapnya, lihat Jenis anonim.

Anggota Ekstensi

Anda dapat "memperluas" kelas tanpa membuat kelas turunan dengan membuat jenis terpisah. Tipe tersebut berisi metode yang dapat dipanggil seakan-akan termasuk ke dalam tipe asli. Untuk informasi selengkapnya, lihat Metode ekstensi.

Variabel Lokal yang Diketikkan Secara Implisit

Dalam kelas atau metode struct, Anda dapat menggunakan pengetikan implisit untuk menginstruksikan pengkompilasi untuk menentukan jenis variabel pada waktu kompilasi. Untuk informasi selengkapnya, lihat var (referensi C#).

Catatan

Anda dapat menambahkan pengubah record ke kelas atau struct. Rekor adalah jenis dengan perilaku bawaan untuk kesetaraan berdasarkan nilai. Rekaman (baik record class atau record struct) menyediakan fitur berikut:

  • Sintaks ringkas untuk membuat jenis referensi dengan properti yang tidak dapat diubah.
  • Kesetaraan nilai. Dua variabel jenis rekaman sama jika memiliki jenis yang sama, dan jika, untuk setiap bidang, nilai dalam kedua rekaman sama. Kelas menggunakan kesetaraan referensi: dua variabel jenis kelas sama jika merujuk ke objek yang sama.
  • Sintaks ringkas untuk mutasi nondestruktif. Ekspresi with memungkinkan Anda membuat instans rekaman baru yang merupakan salinan instans yang sudah ada tetapi dengan nilai properti tertentu berubah.
  • Pemformatan bawaan untuk tampilan. Metode ToString ini mencetak nama jenis rekaman dan nama dan nilai properti publik.
  • Dukungan untuk hierarki pewarisan di kelas rekaman. Kelas rekaman mendukung pewarisan. Struktur rekaman tidak mendukung pewarisan.

Untuk informasi selengkapnya, lihat Rekaman.

Spesifikasi Bahasa C#

Untuk informasi selengkapnya, lihat Spesifikasi Bahasa C#. Spesifikasi bahasa adalah sumber definitif untuk sintaks dan penggunaan C#.