Selasa, 03 November 2009

Class (lanjutan)

Dalam menggunakan class dengan konsep enkapsulasi, sebaiknya untuk data member dimasukkan ke dalam private, agar data hanya bisa diakses oleh class tersebut. Sedangkan untuk function, diletakkan di public. Untuk data member, kenapa dimasukkan ke dalam private? Agar nilai-nilai dari data member tidak bisa diubah selain dari dalam class tersebut. Tapi kita tetap bisa mengambil/mengubah nilai yang berada di dalamnya dengan menggunakan setter dan getter. Berikut adalah contohnya:

#include
class data
{
private:
int no;
public:
int getNo() // getter
{
return(no);
}

void setNo(int x) // setter
{
no=x;
}

};


void main()
{
data obj;
obj.setNo(5);
cout << "Nilai dari No adalah: " << obj.getNo;
cout << endl;
cin.get();
}

Sebuah class dapat berisi object dari class lain (hal ini disebut dengan nested object). Member object disusun berurutan. Contohnya adalah class dengan member objects (host objects) berada setelah deklarasi class host object tersebut (perlu class prototype).

class B; // class prototype
class A
{ public: int i;
}
class B
{ public: int j;
A obj_A; //host object
}
B obj_B; // create object class B
Obj_B.Obj_A.i = 0; // inisialisasi member class A via object B


Tiap class member function memiliki hidden parameter -> pointer "this". This menunjuk kepada individual object. Pointer this dapat digunakan secara explicit.
Contoh penggunaan this:

class data
{
private:
int no;
public:
int getNo() // getter
{
return(no);
}

void setNo(int no) // setter
{
this->no=no; //dimaksudkan agar no yang berada di dalam class yang mendapat nilai
}

};

Tidak ada komentar:

Posting Komentar