Encapsulation adalah sebuah paradigma dalam bidang pemrograman di mana data member atau properties dan member functions atau methods dikemas dalam sebuah kemasan yang dinamai objek.
Dalam bahasa pemrograman C++, objek memiliki abstraksi yang bernama class. Di dalam class, kita dapat membangun "blue print" dari sebuah objek. Pada C++ kita tidak hanya dapat menggunakan class untuk membuat abstraksi dari objek, tetapi kita juga dapat menggunakan struct, mengingat C++ merupakan superset dari C.
Pada penggunaannya antara class dan struct hanya berbeda pada default member accessnya, pada struct semua member secara default akan bersifat public, sedangkan pada class secara default member akan bersifat private. Contoh :
class tes{
int angka; // access private
char huruf; // access private
void get_angka(); // access private
public :
int angka2; // access public
char huruf2; // access public
void get_huruf(); // access public
};
struct tes{
int angka; // access public
char huruf; // access public
void get_angka(); // access public
private :
int angka2; // access private
char huruf2; // access private
void get_huruf(); // access private
};
Berbicara tentang public dan private, kita berbicara tentang access spesifier. Access spesifier adalah cara member sebuah class atau struct diakses. Pada bahasa C++ sebenarnya ada 3 jenis access spesifier, yaitu public, private, dan protected, tetapi pada pembahasan ini hanya akan dibahas public dan private, sedangkan protected akan dibahas pada pembahasan berikutnya.
Access spesifier public berarti semua member di bawah tanda tersebut akan dapat diakses dari luar class, sedangkan private hanya dapat diakses oleh method pada class itu sendiri, misalnya :
class tes{
int angka; // access private
char huruf; // access private
void get_angka(); // access private
public :
int angka2; // access public
char huruf2; // access public
void get_huruf(); // access public
};
int main()
{
tes objek1;
objek1.angka2 = 1; //diperbolehkan karena access public
objek1.get_huruf() // diperbolehkan karena access public
objek1.angka = 1; //compile-error karena access private
objek1.get_angka() // compile-error karena access private
return 0;
}
Kamis, 29 Oktober 2009
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar