Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1 Pertemuan 10 Constructor dan Destructor Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.

Presentasi serupa


Presentasi berjudul: "1 Pertemuan 10 Constructor dan Destructor Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5."— Transcript presentasi:

1 1 Pertemuan 10 Constructor dan Destructor Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5

2 2 Learning Outcomes Pada akhir pertemuan ini, diharapkan : Mahasiswa dapat Mengubah constructor dan destructor pada sebuah class

3 3 Outline Materi Fungsi Constructor Fungsi Destructor Macam - macam Constructor Deklarasi Objek

4 4 Constructor Adalah method yang pertama kali dikerjakan ketika suatu class diciptakan Bertugas melakukan proses inisialisasi Nama constructor = nama class Constructor harus dideklarasi sebagai public Dapat memiliki parameter, tetapi tidak mengembalikan nilai (void)

5 5 Constructor Tiap class harus mempunyai minimal 1 (satu) constructor, bila tidak dideklarasikan oleh user,maka kompiler akan secara otomatis membuat default constructor. Macam-macam Constructor: 1.Default constructor 2.Constructor dengan parameter 3.Copy constructor

6 6 Default Constructor Constructor yang didefinisikan tanpa argumen class Point { //deklarasi kelas Point int x, y; //data x dan y koordinat public: Point(); //deklarasi konstruktor default void move(int, int); //fungsi untuk menggerakan titik void print(); //fungsi untuk mencetak di layar }; Point::point() { // definisi default constructor cout << “Constructor is called…” << endl; x = y = 0; } void main() { Point P1, P2; //constructor dipanggil dua kali }

7 7 Seperti anggota fungsi yang lain, kontruktor juga dapat dideklarasikan dengan parameter atau argumen. Constructor dengan parameter

8 8 class Point { //deklarasi kelas Point int x, y; //data x dan y koordinat public: Point(int, int); //constructor declaration void move(int, int); //fungsi untuk menggerakan titik void print(); //fungsi untuk mencetak di layar }; //definisi constructor dengan parameter Point::point(int x1, int y1) { cout << “Constructor is called…” << endl; if (x1 < 0) x = 0; else x = x1; if (y1 < 0) y = 0; else y = y1; } // main program void main() { Point P1(20, 50), P2(-10, 8); //dipanggil dua kali Point p3; //ERROR } Contoh

9 9 Parameter dari kontruktor dapat memiliki nilai default Point::point(int x1=0, int y1=0) { cout <<“Constructor is called…” <<“\n”; if (x1 < 0)x = 0; else x = x1; if (y1 < 0) y = 0; else y = y1; } Constructor dengan parameter

10 10 Dengan konstruktor ini obyek dapat dicipta dengan: Point P1(15, 75); //x=15, y=75 Point P2(100); //x=100, y=0 Sebagai kontruktor default: Point P3; //x=0, y=0 Constructor dengan parameter

11 11 Merupakan kontruktor khusus yang digunakan untuk mengcopi isi dasi suatu object ke dalam obyek baru yang sedang diciptakan. Tipe data dari parameter input adalah referance (alamat) dari obyek dengan tipe yang sama. Copy Constructor

12 12 class String { int size; char *contents; public: String(const char *); //contructor String(cont String &); //copy contructor void Print(); }; //definisi fungsi copy contructor String::String(const String &object_in) { cout << ”copy constructor has been invoked” << endl; size = object_in.size; contents = new char[size+1]; strcpy(contents, object_in.contents); } void main() { String my_string(“string 1”); My_string.Print(); String other = my_string; //copy constructor dipanggil String more(my_string); //copy constructor dipanggil } Contoh

13 13 Contoh Constructor Contoh constructor pada program bola pantul

14 14 Dectructor Adalah method yang terakhir kali dikerjakan sebelum siklus hidup object berakhir Bertugas melakukan proses deinisialisasi, clean up, dealokasi memory, dll Seperti kontruktor nama destructor sama dengan nama class dengan diberi tanda ~ di depan nama destructor Nama constructor = ~nama class

15 15 Dectructor Didefinisikan tanpa return type dan tanpa argument (parameter). Destructor dideklarasi sebagai public

16 16 class String { int size; char *contents; public: String(const char *); //contructor void Print(); ~String(); }; //definisi contructor String::String(const char *in_data) { cout <<”contructor has been call” << endl; size = strlen(in_data); contents = new char[size+1]; strcpy(contents, in_data); } Contoh

17 17 void String::Print() { cout << contents << “ “ << size << endl; } //definisi destructor String::~String() { Cout << “Destructor has been invoked” << endl; Delete [] contents; } int main() { String string1(“String 1”); String string2(“String 2”); string1.Print(); string2.Print(); Return 0; //destructor dipanggil 2 kali } Contoh Lanjutan

18 18 Contoh Destructor Contoh destruktor pada program bola pantul

19 19 Constructor & destructor dipanggil secara otomatis. Constructor pada object global dipanggil sebelum fungsi main dieksekusi dan destructor dikerjakan setelah fungsi main selesai dieksekusi. Constructor pada object lokal dipanggil otomatis saat object dedefinisikan dan destructornya dieksekusi setelah proses object selesai. Pada object static lokal, constructor dipanggil sekali pada saat object didefinisikan dan destructornya dipanggil setelah fungsi main selesai. Pemanggilan constructor & destructor

20 20 Penutup Untuk dapat Mengubah constructor dan destructor pada sebuah class, mahasiswa membahas tugas pertemuan 10 no 1, 2, dan 3. (diskusikan dalam kelompok)


Download ppt "1 Pertemuan 10 Constructor dan Destructor Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5."

Presentasi serupa


Iklan oleh Google