Bahasa C
Enkapsulasi didefinisikan 'sebagai proses melampirkan satu atau lebih item dalam paket fisik atau logis'. Enkapsulasi, dalam metodologi pemrograman berorientasi objek, mencegah akses ke detail implementasi.
Abstraksi dan enkapsulasi adalah fitur terkait dalam pemrograman berorientasi objek. Abstraksi memungkinkan membuat informasi yang relevan terlihat dan enkapsulasi memungkinkan pemrogram untuk menerapkan tingkat abstraksi yang diinginkan .
Enkapsulasi diimplementasikan dengan menggunakan penentu akses . Penentu akses mendefinisikan ruang lingkup dan visibilitas anggota kelas. C# mendukung penentu akses berikut
Penentu akses publik memungkinkan kelas untuk mengekspos variabel anggota dan fungsi anggotanya ke fungsi dan objek lain. Setiap anggota publik dapat diakses dari luar kelas.
Contoh berikut mengilustrasikan ini
Demo Langsungusing System; namespace RectangleApplication { class Rectangle { //member variables public double length; public double width; public double GetArea() { return length * width; } public void Display() { Console.WriteLine("Length: {0}", length); Console.WriteLine("Width: {0}", width); Console.WriteLine("Area: {0}", GetArea()); } }//end class Rectangle class ExecuteRectangle { static void Main(string[] args) { Rectangle r = new Rectangle(); r.length = 4.5; r.width = 3.5; r.Display(); Console.ReadLine(); } } }
Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut
Length: 4.5 Width: 3.5 Area: 15.75
Dalam contoh sebelumnya, panjang dan lebar variabel anggota dideklarasikan publik , sehingga dapat diakses dari fungsi Main() menggunakan instance dari kelas Rectangle, bernama r .
Fungsi anggota Tampilan() dan GetArea() juga dapat mengakses variabel-variabel ini secara langsung tanpa menggunakan instance kelas apa pun.
Fungsi anggota Tampilan() juga dinyatakan publik , jadi bisa juga diakses dari Main() menggunakan instance dari kelas Rectangle, bernama r .
Penentu akses pribadi memungkinkan kelas untuk menyembunyikan variabel anggota dan fungsi anggotanya dari fungsi dan objek lain. Hanya fungsi dari kelas yang sama yang dapat mengakses anggota pribadinya. Bahkan instance kelas tidak dapat mengakses anggota pribadinya.
Contoh berikut mengilustrasikan ini
Demo Langsungusing System; namespace RectangleApplication { class Rectangle { //member variables private double length; private double width; public void Acceptdetails() { Console.WriteLine("Enter Length: "); length = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Enter Width: "); width = Convert.ToDouble(Console.ReadLine()); } public double GetArea() { return length * width; } public void Display() { Console.WriteLine("Length: {0}", length); Console.WriteLine("Width: {0}", width); Console.WriteLine("Area: {0}", GetArea()); } }//end class Rectangle class ExecuteRectangle { static void Main(string[] args) { Rectangle r = new Rectangle(); r.Acceptdetails(); r.Display(); Console.ReadLine(); } } }
Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut
Enter Length: 4.4 Enter Width: 3.3 Length: 4.4 Width: 3.3 Area: 14.52
Dalam contoh sebelumnya, panjang dan lebar variabel anggota dideklarasikan pribadi , sehingga tidak dapat diakses dari fungsi Main(). Fungsi anggota AcceptDetails() dan Tampilan() dapat mengakses variabel tersebut. Karena fungsi anggota AcceptDetails() dan Tampilan() dinyatakan publik , mereka dapat diakses dari Main() menggunakan instance dari kelas Rectangle, bernama r .
Penentu akses yang dilindungi memungkinkan kelas anak untuk mengakses variabel anggota dan fungsi anggota dari kelas dasarnya. Cara ini membantu dalam mengimplementasikan pewarisan. Kami akan membahas ini lebih detail di bab pewarisan.
Penentu akses internal memungkinkan kelas untuk mengekspos variabel anggotanya dan fungsi anggotanya ke fungsi dan objek lain di Majelis saat ini. Dengan kata lain, setiap anggota dengan penentu akses internal dapat diakses dari kelas atau metode apa pun yang ditentukan dalam aplikasi tempat anggota tersebut didefinisikan.
Program berikut mengilustrasikan hal ini
Demo Langsungusing System; namespace RectangleApplication { class Rectangle { //member variables internal double length; internal double width; double GetArea() { return length * width; } public void Display() { Console.WriteLine("Length: {0}", length); Console.WriteLine("Width: {0}", width); Console.WriteLine("Area: {0}", GetArea()); } }//end class Rectangle class ExecuteRectangle { static void Main(string[] args) { Rectangle r = new Rectangle(); r.length = 4.5; r.width = 3.5; r.Display(); Console.ReadLine(); } } }
Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut
Length: 4.5 Width: 3.5 Area: 15.75
Pada contoh sebelumnya, perhatikan bahwa fungsi anggota GetArea() tidak dideklarasikan dengan penentu akses apa pun. Lalu apa yang menjadi penentu akses default anggota kelas jika kita tidak menyebutkannya? Ini adalah pribadi .
Penentu akses internal yang dilindungi memungkinkan kelas untuk menyembunyikan variabel anggota dan fungsi anggotanya dari objek dan fungsi kelas lain, kecuali kelas anak dalam aplikasi yang sama. Ini juga digunakan saat menerapkan pewarisan.
Bahasa C
C# Warisan Dalam tutorial ini, kita akan belajar tentang pewarisan C# dan jenisnya dengan bantuan contoh. Dalam C#, pewarisan memungkinkan kita untuk membuat kelas baru dari kelas yang sudah ada. Ini adalah fitur utama Pemrograman Berorientasi Objek (OOP). Kelas dari mana kelas baru dibuat dikena
Warisan C++ Dalam tutorial ini, kita akan belajar tentang pewarisan dalam C++ dengan bantuan contoh. Pewarisan adalah salah satu fitur utama pemrograman berorientasi objek di C++. Ini memungkinkan kita untuk membuat kelas baru (kelas turunan) dari kelas yang ada (kelas dasar). Kelas turunan mewari
Kelas Java ObjectInputStream Dalam tutorial ini, kita akan belajar tentang Java ObjectOutputStream dan metodenya dengan bantuan contoh. ObjectInputStream kelas java.io package dapat digunakan untuk membaca objek yang sebelumnya ditulis oleh ObjectOutputStream . Ini memperluas InputStream kelas abs
Kelas Java PrintStream Dalam tutorial ini, kita akan belajar tentang kelas Java PrintStream dan metode print() dan printf() dengan bantuan contoh. PrintStream kelas java.io package dapat digunakan untuk menulis data keluaran dalam bentuk (teks) yang dapat dibaca secara umum alih-alih byte. Ini mem