1 / 21

Other OOP Basic

Other OOP Basic. Viska Mutiawani , M.Sc. Konsep penting. Method overloading Encapsulation this keyword final static. Visualisasi Class. Class divisualisasikan dalam UML sebagai kotak persegi dengan 3 ruang : Nama : identitas kelas

iola
Download Presentation

Other OOP Basic

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. Other OOP Basic ViskaMutiawani, M.Sc

  2. Konseppenting • Method overloading • Encapsulation • this keyword • final • static

  3. Visualisasi Class • Class divisualisasikandalam UML sebagaikotakpersegidengan 3 ruang: • Nama : identitaskelas • Variabel (atribut, state, field): atributkelas • Method (behavior, function, operation) : perilakukelas

  4. Method Overloading • Method overloading: namamethodnyasamanamunbedaimplementasinya. • Perbedaanimplementasi: dibedakanolehparameternya (jumlah parameter, tipe data parameter, urutan parameter)

  5. Contoh

  6. Method Overloading pada Constructor // Define the Circle class public class Circle { // Save as "Circle.java" // Private variables private double radius; private String color; // Constructors (overloaded) public Circle() { // 1st Constructor radius = 1.0; color = "red"; } public Circle(double r) { // 2nd Constructor radius = r; color = "red"; } public Circle(double r, String c) { // 3rd Constructor radius = r; color = c; } } Kelas Circle memiliki 3 method Constructor. Method mana yang dipilihakandisesuaikandengan parameter yang digunakansewaktumenciptaobjek Circle. Jikatidakketemupadanannyaakanmuncul error kompilasi

  7. public vs private • public: class/variabel/method dapatdiaksesolehsemuaobjekdalamsistem. • private: variabel/method dapatdiaksesolehkelasitusendiri Pada UML: public dinotasikandengan + private dinotasikandengan -

  8. Encapsulation • Objektidakseharusnyamembukalebarsemuainformasimengenainya. Adainformasi yang harusditutupidariklien. • Nasabahtidakperlutahuprosesdidalammesin ATM sewaktupenarikan • Encapsulationadalahteknikmempaketkaninformasidenganmenyembunyikansegalahalygharusdisembunyikandanmenampakkansegalahal yang bisaditampakkan.

  9. Encapsulation • Satu class me-encapsulate/ membungkus data (dalamvariabel) danalgoritma (dalam method). • Nilaidarivariabelmenggambarkankondisinya (state) • Method menggambarkanperilakunya (behavior)

  10. Information Hiding • Variabeldi-encapsulate dalam class denganmenggunakanaksesprivate. • Untukmencapainyakitapanggil/buat method accessor yang public. • Objeksalingberkomunikasiantarsesamanyadenganmenggunakanantar-muka (method public). • Implementasidalam method di-encapsulate dalam class.

  11. Keyword this • Keyword thisdigunakanuntukmerujukpadaobjekinidalamsuatu class. • Kegunaannyauntukmenghilangkanambigu. • thisdapatdigunakanuntukvariabeldan method. • Pada constructor, this digunakanuntukmemanggil constructor lain.

  12. Method toString() • Method toString() merupakansalahsatu method dasar yang adadalam class Object, yang akanmengembalikan String. • Setiap class dalam Java, sebaiknyamengoverride method toString() dengancaramencetakdeskripsiumumdariobjektersebut.

  13. Constant (final) • Constant pada Java menggunakan keyword final. • Variabelfinalhanyabisadiberinilaisekalidantidakbisadiubah.

  14. Static • Variabel static: variabel class • Variabel static akandiinisialisasiketikakelasdiinisialisasi. Walaupunadabanyakobjekhasilciptaansuatu class yang memilikivariabel static, variabelstaticnyatetaplahsatu (kepunyaan class) class Test { static int a=10; static int b =100; } Variabel static dapatdiaksessepertiini: Test.a=100; Test.b=200; Cara dibawahjuga valid: Test t1=new Test(); Test t2=new Test(); t1.a=100; t2.a=100;

  15. Contoh // The Circle class definition public class Circle { // Save as "Circle.java" // Public constants public static final double DEFAULT_RADIUS = 8.8; public static final String DEFAULT_COLOR = "red"; // Private variables private double radius; private String color; // Constructors (overloaded) public Circle() { // 1st Constructor radius = DEFAULT_RADIUS; color = DEFAULT_COLOR; } public Circle(double radius) { // 2nd Constructor this.radius = radius; color = DEFAULT_COLOR; } public Circle(double radius, String color) { // 3rd Constructor this.radius = radius; this.color = color; } // Public getter and setter for private variables public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } // toString() to provide a short description of this instance public String toString() { return "Circle with radius = " + radius + " and color of " + color; } // Public methods public double getArea() { return radius*radius*Math.PI; } }

  16. KerjasamaObjek • Padasuatuaplikasiberbasisobjek, aplikasitersebutmenciptakanobjek yang salingberkolaborasididalammemori

  17. Latihan PermainanDadukudimainkanolehduapemain. Setiappemain yang mendapatgiliranakanmelemparduadadubersamaan. Nilaiyang munculpadakeduadadumempunyainilaitertentu, sepertidibawah: KombinasiSkor * Nilai 1 munculhanyapadasatudadu 100 * Nilai 5 munculhanyapadasatudadu 50 * Keduadadumenampilkannilai 2 200 * Keduadadumenampilkannilai 3 150 * Keduadadumenampilkannilai 6 250 Salahsatupemainakandinyatakanmenangjikaberhasilmengumpulkannilailebihdari 1000. Adaberapa class yang terlibatpadapermainanini?

  18. Class yang terlibatpadapermainanDaduku • Dadu • sisi : int • + Dadu () • + getSisi () : int • + setSisi (sisi : int) : void • + lemparDadu () : void • + toString () : String • Permainan • ? • ? • Pemain • nama : String • nilai: int • + Pemain (nama:String) • + getNama () : String • + setNama (nama : String) : void • + getNilai () :int • + setNilai (skor : int) : void • + toString () : String

  19. Latihan • Gender bisa : ‘l’ || ‘p’ atau ‘L’ || ‘P’ • Method toString() mengembalikan "author-name (gender) at email", e.g., “Amira (p) at amira@somewhere.com".

  20. Latihan • Asumsi: bukudikarangolehsatupengarangsaja. • Method toString() that returns "'book-name' by author-name (gender) at email".Gunakan method Author's toString(), ygmengembalikan "author-name (gender) at email".

More Related