1 / 25

CHAPTER 2 CLASSES & OBJECT

CHAPTER 2 CLASSES & OBJECT. PART 2 CONSTRUCTORS & DESTRUCTORS MALAY VERSION. KONSTRUKTOR. Konstruktor merupakan ahli yg memberi nilai awal kpd ahli data semasa sesuatu objek diistiharkan . Ciri-ciri bagi konstruktor adalah seperti berikut :

thiery
Download Presentation

CHAPTER 2 CLASSES & OBJECT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CHAPTER 2 CLASSES & OBJECT PART 2 CONSTRUCTORS & DESTRUCTORS MALAY VERSION

  2. KONSTRUKTOR • Konstruktormerupakanahliygmemberinilaiawalkpdahli data semasasesuatuobjekdiistiharkan. • Ciri-ciribagikonstruktoradalahsepertiberikut: • konstruktormerupakanahlifungsi yang namanyasamadengannamakelas • Konstruktorperludiistiharkansebagaiahli public • Konstruktortidakmempunyaijenispulanganfungsi, (walaupun void), danolehitutidakbolehmemulangkansebarangnilai • Konstruktordilaksanakansecaraautomatikapabilasesuatuobjekdiistiharkan

  3. KONSTRUKTOR samb… • Konstruktorblhmempunyai parameter atautiada parameter • Pengaturcarabolehmenghasilkanbeberapakonstruktorkelas yang sama, ygmanasetiapkonstruktordiberimelaluisenaraidanjenis parameter. Inidikenalisebagailimpahankonstruktor • Konstruktortidakbolehdiwarisidanjugatidakbolehberjenis virtual.

  4. KONSTRUKTOR TANPA PARAMETER • Konstruktortanpa parameter jugadikenalisebagaikonstruktorlalai • Sekiranyasesuatuaturcaratidakmempunyaikonstruktor yang ditakrifpengaturcara, pengkompilakanmenghasilkankonstruktorlalainyasendiridanmemberinilaiawalkpdahli data dengannilainya yang tidakdptdijangkakan. • Walaubagaimanapun,pengaturcaraseelok-eloknyamenyediakankonstruktorlalainyasendirisepertidalamaturcaraberikut :

  5. KONSTRUKTOR TANPA PARAMETER class tarikh { inthari, bulan, tahun; public: //pengisytiharankonstruktortanpa parameter // namakonstruktormestisamadengannamakelas tarikh ( ); : }; // penakrifankonstruktor tarikh::tarikh () { hari = 0; bulan = 0; tahun = 0; }

  6. KONSTRUKTOR TANPA PARAMETER • Pernyataanbagimengisytiharkanobjektarikh : tarikhtlahir; • Biladilaksanakan, penyataaniniakanmenyebabkankonstruktorlalaitarikh() dipanggilsecaraautomatik. • Kandunganingatanbagiobjektlahir: tlahir hari 0 bulan 0 tahun 0

  7. KONSTRUKTOR TANPA PARAMETER • Setelahpengisytiharandiatasdilaksanakan, ahli data bgtlahiriaituhari, bulandantahunakandinilaiawalkankpdsifar. Walaubagaimanapun, secaralogiknyatarikhbagisesuatuperistiwatidakterdiridrpnilaisifar. Olehitusekiranyanilaiawalbagisetiapahli data bagisetiapobjektarikhmempunyaimaklumatygberbeza-bezadanperludimasukkanolehpengguna, fungsikonstruktortarikh() bolehditulissemulasepertiberikut : tarikh::tarikh ( ) { cout<< “\nMasukkanhari”; cin >> hari; cout<< “\nMasukkanbulan”; cin>>bulan; cout<< “\nMasukkantahun”; cin>>tahun; }

  8. KONSTRUKTOR TANPA PARAMETER • Perlaksanaanpenyataan, tarikhtlahir; menyebabkanarahanygmemintapenggunamasukkanmaklumattertentudipaparkan. Nilaiygdimasukkanpenggunaakanmenjadinilaiawalkepadaahli data tlahir.

  9. KONSTRUKTOR DENGAN PARAMETER • Pengaturcarajugablhmenghantarargumenkpdkonstruktoruntukmenilaiawalkanahli data. Iniditunjukkandlmcontohberikut: class tarikh { inthari, bulan, tahun; public: //pengisytiharankonstruktordengan parameter tarikh(int a, int b, int c); : }; // penakrifankonstruktor tarikh::tarikh (int n1, int n2, int n3) { hari = n1; bulan = n2; tahun = n3; }

  10. KONSTRUKTOR DENGAN PARAMETER • Cara mengisytiharkanobjekygmempunyaikonstruktordengan parameter: tarikhtlahir (11,5,1990); • Setelahobjektlahirdiisytiharkan, nilaiargumen yang dihantarakanditerimaoleh n1, n2 dan n3 padafungsikonstruktor. Olehituahli data bagitlahirakandinilaiawalkandgnnilaiberikut : tlahir hari 11 bulan 5 tahun 1990

  11. KONSTRUKTOR DENGAN ARGUMEN LALAI ARGUMEN LALAI • C++ mempunyaikemudahandimanafungsinyabolehmempunyaiargumenlalai • Argumenlalaimerupakannilaiygakandigunakansbgargumensekiranyasemasapanggilankeatassesuatufungsi, argumensebenartidakdinyatakan. • Argumenlalaiinimestidisenaraikanpadaprototaipfungsiygmempunyaiargumenlalai. • Contohprototaipfungsisetdata() yang mempunyaiargumenlalai : Void setdata (char tk[25], float h, intth=2010);

  12. KONSTRUKTOR DENGAN ARGUMEN LALAI • Penyataanygmemanggilfungsisetdata() diatasperlumenyertakansekurang-kurangnyaduaargumen • Duacaraberbezabagimemanggilfungsisetdata() secarasah: Cara 1 Dalamcontohini, argumenketigatidakdinyatakan, olehitunilailalai yang disediakan, 2002 akandigunakansebagaiargumenketiga. Cara 2 Dalamcontohini, panggilankeatasfungsisetdata() menyertakan 3 argumen. Bilahaliniberlaku, argumensebenar yang disertakanakandigunakan. Setdata (“Dunia Java”, 70.00); Setdata (“SistemPakar”, 700.00, 1998);

  13. KONSTRUKTOR DENGAN ARGUMEN LALAI • Syaratpenggunaanargumenlalaisekiranyafungsimempunyaibeberapa parameter, argumenlalaiperludisenaraikandarikanankekiripadasenarai parameter dalamprototaipfungsi • Contohpengisytiharanprototaipygsah: • Contohpengsiytiharanprototaipygtidaksah: void darab (int x=10, int y=2, int z=19); void darab (int x, int y=2, int z=19); void darab (int x=10, int y, int z=19); void darab (int x, int y=2, int z); void darab (int x=10, int y, int z);

  14. ARGUMEN LALAI BAGI FUNGSI KONSTRUKTOR • Konstruktorbolehmempunyaiargumenlalai • Contohkonstruktordenganargumenlalaidanpenakrifankonstruktortersebutdiluarkelas class tarikh { inthari, bulan, tahun; public : : tarikh(int a=1, int b=1, int c=2002); : }; // penakrifankonstruktor tarikh::tarikh (int n1, int n2, int n3) { hari = n1; bulan = n2; tahun = n3; }

  15. ARGUMEN LALAI BAGI FUNGSI KONSTRUKTOR • Contohpengisytiharanobjektarikh yang sah: • pengisytiharanobjek yang menggunakansemuanilailalai: • pengisytiharanobjek yang mengabaikansemuanilailalai : • pengisytiharanobjek yang menggunakansatunilailalai, 2002: 4. pengisytiharanobjek yang mengabaikannilailalaiygpertamadalamsenarai : tarikhtahunBaru; tarikhtahunLahir (22, 11, 2001); tarikhhKebangsaan (31,8); Tarikhtdaftar (20);

  16. KONSTRUKTOR LIMPAHAN • FungsiLimpahan • fungsilimpahanbermaksudsatunamafungsibolehdiisytiharkandanditakrifkanbeberapa kali dalamsatuaturcara. • Setiapfungsilalaimempunyainamaygsamatetapimelaksanakantugasygberbeza • Pengkompilmembezakanpanggilanantarafungsimelaluijenispulanganfungsidanjenissertabilangan parameter fungsi. • Contohprototaiplimpahanfungsicampur(); intcampur(int,int); //prototaip 1 intcampur(int, int, int); //prototaip 2 double campur (double, double); // prototaip 3 double campur (int, double); //prototaip 4 void campur (); //prototaip 5

  17. KONSTRUKTOR LIMPAHAN • Contohpanggilankeatasfungsicampur() ygberbeza : cout << “\nHasilCampur “<<campur (2000,20); //panggilprototaip 1 cout<< “\nHasilCampur” <<campur (1000,1000,20); //panggilprototaip 2 cout << “\nHasilCampur” <<campur(20.20,22.22); //panggilprototaip 3 cout << “\nHasilCampur” <<campur (2000,20.20); //panggilprototaip 4 campur(); //panggilprototaip 5

  18. IMPLEMENTASI LIMPAHAN KONSTRUKTOR • C++ membenarkanbeberapakonstruktorygsamadiisytiharkandalamsatukelas. Contohnya : class tarikh { inthari, bulan, tahun; public: //penakrifankonstruktortanpa parameter tarikh() { hari =0; bulan =0; tahun =0; } // penakrifankonstruktordengan 3 parameter tarikh::tarikh (int n1, int n2, int n3) { hari = n1; bulan = n2; tahun =n3; } : };

  19. IMPLEMENTASI LIMPAHAN KONSTRUKTOR • Semasamengisytiharkansesuatuobjek, pengaturcaraanperlumenentukankonstruktormana yang digunakanbgmenghasilkanobjektersebut. • Berdasarkankpdcontohlimpahankonstruktorygdiberi, objekblhdiisytiharkandgn 2 cara, iaitu : • Pengisytiharanpertama: Menyebabkankonstruktortanpa parameter dipanggil. Ahli data hari, bulandantahunbagiobjektlahirdinilaiawalkandengansifar. tarikhtlahir; atau Tarikhhpekerja (1,5,2010); tarikhtlahir;

  20. IMPLEMENTASI LIMPAHAN KONSTRUKTOR • Pengisytiharankedua Menyebabkankonstruktordengan 3 parameter dipanggil. Ahli data bgobjekhpekerjadinilaiawalkansptberikut : hari = 1, bulan = 5, dantahun = 2002 • Konstruktordenganargumenlalaijugablhdijadikansbglimpahankonstruktorbersama-samadgnkonstruktor lain. • Ttppengacperluberhati-hatiapblmelaksanakanlimpahankonstruktorygmempunyaiargumenlalai. Sekiranyatidakdilaksanakandenganbetul, makaralatkesamaranakanberlaku. tarikhhpekerja(1,5,2002);

  21. IMPLEMENTASI LIMPAHAN KONSTRUKTOR • Contohlimpahankonstruktorygmestidielak: • Compiler akanmengalamikonflikdalammelaksanakanpernyataanberikut: tarikhh_ibu(12,5,2002) tarikhhperiksa(); • Berlakukesamarandiantaraperlaksanaantarikh() dengantarikh(int,int,int). class tarikh { inthari, bulan, tahun; public: tarikh(); tarikh(int n1, int n2, int n3); tarikh(int a=10, b=5,c=1999); : };

  22. DISTRUKTOR • Distruktordigunakanuntukmenghapuskanobjekygtlhdigunakanolehkonstruktor. • Distruktormerupakanahlifungsiygnamanyasamadengannamakelasttpdidahuluidengansimboltilda(~) • Contohdistruktorbgkelastarikh ~tarikh( ) { } • Syarat-syaratpenghasilandistruktor: • tidakbolehmempunyaiargumen • Tidakbolehmemulangkannilai • Tidakbolehmempunyailimpahandistruktor • Tidakbolehdiwarisi

  23. DISTRUKTOR • Distruktorakandilaksanakansecaraautomatikapabilasesuatuobjekkeluardariskopnya • Contohpenggunaandanperlaksanaandistruktorsptdalam ac berikut:

  24. DISTRUKTOR #include <iostream.h> intbil = 0; class test { public: test() { bill++; cout << “\nIDobjek yang dihasilkan :” <<bil; } ~test() { cout<<“\nIDobjek yang dihapuskan:”<<bil; bil--; } }; Bersambung…

  25. DISTRUKTOR main( ) { cout << “\nMemasukiaturcara MAIN\n; test obj1, obj2, obj3; { cout <<“\n Memasukiblok 1\n; test obj4; } { cout <<“\n Memasukiblok2\n; test obj5; } cout << “\nMemasukiaturcara MAIN semula\n”; }

More Related