Review Tentang OOP untuk Persiapan Design Pattern

Review tentang OOP
Tujuan Mempelajari Design Pattern:
Dapat menyelesaikan masalah pemerograman dengan baik dan benar

Mengapa harus review article tentang OOP sebelum mempelajari design pattern?

Sebagian besar dari design pattern bisa di bilang menggunakan konsep OOP jika anda tidak mengerti OOP bisa jadi boomerang buat anda jika anda ingin langsung belajar design pattern.

Article yang saya tulis ini adalah ringkasan jika anda baru anda bisa membaca di link ini


Apa itu Class?
- class adalah blueprint
- Fields(Instance Variables)
= Apa yang Objek Ketahui
-Method(Function)
= Apa yang objek Lakukan
Animal
Name:string
Height :double
weight : int
favoriteFood : String
speed : double
Animal() : coid
move(int) :void
eat() : void
setName(String) :void
getName() :string


Apa itu Inheritance?

- Apa yang biasa di miliki class
- membuat abstract feature
- meng overide(mengesampingkan) atau extend(menambahkan) metode yang tidak berjalan.


Bird(SubClass)
move(int) : void

Dog (Subclass)
DigHole() :void

Animal( Super )
Name : String
height : double
weight :int
favoriteFodd :string
speed :double
Animal() :void
move(int) : void
eat() : void
setName(String) :void
getName() :String


Class Animal{
private String name;
private double height;
private int weight;

public void setName(String newName){
name=newName;
}

}
Class Dog extends Animal{
public void digHole(){
System.out.println(“Hole Dug”);
}
}

Field dan Method sudah di define ketika mengextends super class

Kita hanya mendifine perubahan


Apa yang di maksud dengan main

main membuat objek dan mereka berinteraksi

Public static void main(String[] args){
Dog grover=new Dog();

grover.setName(“Grover”);
//dont do this
grover.name=”Grover”;
}


Dog
Name : String
height: double
weight : int
favoriteFood : String
speed :double
Animal() :void
move(int) : void
eat() :void
setName(String) :void
getName() : String

Class Dog{
String name;
double height;

setWeight(int newWeight){
if(newWeight > 0){
weight = newWeight;
}else{
//Throw an error
}
}
}


Cara menyembunyikan data

->Fields(Instance Private) are private

->Getter & Setter Method are Public
Class Dog{
private String name;
private double height;
private int weight;

public void setName(String newName){
name= newName;
}
public String getName(){return name;}
}
Getter = Accessors
Setter = Mutators

Instance dan Local variable

->Fields(Instance Private) are private

->Getter & Setter Method are Public
Class Dog{
private int weight;

public double getGrams(){
double gramMult = 453.59;

return gramMult*weight;
}
}


Kondisi ketika harus meng-extends kelas lain

Apakah A? Pertanyaan di bawah membantumu memutuskan harus meng-extend kelas lain atau tidak
→ apakah “Dog” adalah “Animal”?
→ apakah “Dog” adalah “Cat”?

Memiliki A?
→ Apakah “Dog” memiliki “Height”


Kapan Menggunakan InHeritance
→ subclass dari A superclass “Dog Is An Animal”
→ ketika subclass membutuhkan banyak dari metode yang ada di superclass
→ Hampir semua method di Animal digunakan oleh Dog

jangan :
→ menggunkan inheritance hanya untuk me-reuse code, atau mereka tidak memiliki hubungan.

→ menghindari duplikasi
→ Mengubah superclass code langsung memperngaruhi subclasses
→ User mengetahui subclasses memiliki semua methods dari superclass

apa itu polymorphism?
→ polymorphism memungkinkan anda menulis methode yang tida perlu di ubah ketika ada subclasses yang baru di buat
→ Dog dapat menambah method baru tanpa mengubah animal

→ bisa menaruh subclass yang berbeda di dalam satu array
→ animal doggy= new Dog();
→ animal kitty = new Cat();
→ kitty.getSound() meng-eksekusi Cat method
→ anda tidak bisa mengakses method di atas di dalam subclass
Animal Array
Dog Object

Cat Object


Apa itu abstract?

→ jika anda ingin kekuatan polymorhism tanpa bekerja
→ abstract public class Creature
→ public abstract void setName();
→ tidak ada abstract field
→ method di dalam abstract tidak harus abstract
→ Di dalam abstract class bisa mempunyai static method


Apa it Interface?
→ class yang di isi oleh abstract method
→ anda bisa menambahkan interface ke class sebanyak yang anda mau
→ anda hanya bisa menggunakan public static dan final fields
→ ineterface menyediakan fleksibilitas maksimal

       → Class dari inheritance berbeda dapat menggunakan interface



Berikut ini video mengenai OOP yang recomended beserta cara penggunaannya


untuk code yang ada di video di atas anda bisa mendownloadnya di sini

Comments

  1. If you're looking to lose kilograms then you have to try this totally brand new personalized keto meal plan diet.

    To design this service, certified nutritionists, fitness couches, and professional chefs have united to produce keto meal plans that are powerful, suitable, economically-efficient, and delicious.

    Since their grand opening in early 2019, hundreds of clients have already completely transformed their body and well-being with the benefits a good keto meal plan diet can provide.

    Speaking of benefits: clicking this link, you'll discover eight scientifically-tested ones provided by the keto meal plan diet.

    ReplyDelete

Post a Comment

Popular posts from this blog

10 CMS untuk Forum

11 Website yang Membayar Anda untuk Meng-upload File

10 Soal Ujian dari Perusahaan untuk Web Programmer