Selasa, 23 September 2014

Praktikum pemrograman OOP - M4

hari ini kita membahas class constructor

jika kita buat class baru, maka di file class akan ada fungsi yang namanya sama dengan nama class, ada 2, satunya ada tanda '~' nya satunya tidak ada

clas::~class = destructor
class::class = konstruktor

konstruktor
-------------
Class mahasiswa(int nrp, string nama)
{
NRP = nrp;
NAMA = nama;
}

maka di main(), NRP dan NAMA bisa langsung terisi nilai
contoh:
main()
{
 mahasiswa a = new mahasiswa(nrp,nama);
}


class= NAMA, NRP, KELAS
mahasiswa a(string NAMA, int NRP, int KELAS);
mahasiswa a(string NAMA, int NRP);
mahasiswa a(string NAMA);
bisa untuk mengisi data yang sudah default. kalau hanya 1-2 fungsi set dan get tidak akan terasa, tetapi kalau ribuan akan sangat membantu.

Destructor
----------
class::~class(void)
berguna untuk menghapus data di komputer agar tidak memenuhi memori

kalau ada destructor, maka fungsi tersebut tidak perlu dipanggil karena akan otomatis dilakukan penghapusan objek kelasnya sendiri setelah main() selesai dijalankan. sangat berguna agar program kita tidak memenuhi memori komputer.

biasanya tidak ada tanda telah dihapus, tetapi apabila kita berikan printf atau cout maka komputer akan mengindikasikan bahwa objek terlah terhapus di akhir program

contohnya ada di materi bu dea

Inheritance
-----------
Penurunan sifat

sifat-sifat inheritance = {rectangle, triangle,trapezoid, circle);
memiliki kesamaan atribut
contoh: rectangle dan triangle
________               
|      |panjang       /p\
|______|             /_|_\
 lebar                 l
sama-sama memiliki panjang dan lebar

class Shape(){
private int panjang;
private int lebar;
}

triangle atributnya sama dengan class shape fungsinya beda
rectangle atributnya sama dengan class shape fungsinya beda

setelah mendifinisikan class Shape apabila kita buat class baru, bernama class triangle, pada base class = Shape
hal ini berarti, data yang terdapat pada class Shape otomatis akan dimiliki juga oleh triangle. (Shape{parent} -> triangle{child})

lalu apa bedanya Shape dan triangle?
pada triangle kita tambahkan luas area (getArea) karena luas area segitiga dan persei panjang berbeda maka kita definisikan cara mencari luas area segitiga di class triangle ini.

PR:
debug program agar bisa berjalan
tambahkan child rectangle, terdapat getArea()-> return panjang*lebar;
bikin konstruktor di kelas child.
1. Mencari hubungan antara konstruktor dari parent class dengan konstruktor child class
2. Debug program (cari dan jelaskan errornya beserta cara memperbaiki)
3. Buat kelas rectangle beserta fungsi2nya contohnya getArea()
4. Jenis-jenis inheritance
-publik
-private, dst.
__________________________________________
|parent ~~  Public ~~ Protected ~~ Private|
|child  ~~  Public ~~ ???????   ~~ ?????  |
-------------------------------------------

kumpulkan word & cpp kumpulkan ke komting~

Tidak ada komentar:

Posting Komentar