Sekarang, kita sudah cukup familiar dengan kata kunci public
:
Contoh:
#include <iostream> using namespace std; class MyClass { // The class public: // Akses specifier public int x; // Atribut public (int variable) }; int main() { MyClass myObj; // Buat objek MyClass // Akses atribut dan set nilai myObj.x = 15; // Cetak nilai cout << myObj.x; return 0; }
Kata kunci public
adalah penentu akses. Penentu akses menentukan bagaimana anggota (atribut dan metode) kelas dapat diakses. Dalam contoh di atas, anggota bersifat public
, yang berarti mereka dapat diakses dan dimodifikasi dari luar kode.
Namun, bagaimana jika kita ingin anggota menjadi pribadi dan tersembunyi dari kelas?
Di C ++ ada tiga penentu akses:
public
– anggota dapat diakses dari luar kelasprivate
– anggota tidak dapat diakses (atau dilihat) dari luar kelasprotected
– anggota tidak dapat diakses dari luar kelas, namun mereka dapat diakses di kelas yang diwariskan.Dalam contoh berikut merupakan perbedaan antara anggota public
dan private
:
Contoh:
class MyClass { public: // Akses specifier public int x; // Atribut public private: // Akses specifier private int y; // Atribut private }; int main() { MyClass myObj; myObj.x = 25; // Diizinkan (public) myObj.y = 50; // Tidak diizinkan (private) return 0; }
Jika mencoba mengakses anggota pribadi, kesalahan terjadi seperi berikut:
Catatan: Dimungkinkan untuk mengakses anggota private
kelas menggunakan metode public
di dalam kelas yang sama.
Tip: Mendeklarasikan atribut kelas sebagai private (sesering mungkin) merupakan praktik yang baik. Ini akan mengurangi kemungkinan diri untuk mengacaukan kode. Hal ini juga merupakan bahan utama dari konsep Enkapsulasi.
Catatan: Secara default, semua anggota kelas bersifat private
jika kita tidak menentukan penentu akses:
Contoh :
class MyClass { int x; // Atribut Private int y; // Atribut Private };