Basic OOP


Pada konsep Object Oriented Programming / OOP variable dan fungsi program akan dibungkus / dikelompokan dalam suatu Object atau Class

Contoh class / object
public class Human {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public void attack() {
        System.out.println(getName() + " Kick");    
    }
}
Contoh Penggunaan class / object
Human human = new Human();
human.setName("Jhon");
human.attack();

  • Inheritance 
    • Kita bisa membuat sub class yang mewarisi variable dan fungsi dari parent class
    • Di Java menggunakan keyword extend
    • Contoh Inheritance
      public class SuperHero extend Human {
          private String power;

          public void setPower(String power) {
              this.power = power;
          }

          public String getPower() {
              return this.power;
          }
         
          @Override
          public void attack() {
              System.out.println(getName() + " " + getPower());    
          }
      }
    • Contoh Penggunaan
      SuperHero hero = new SuperHero();
      hero.setName("Maulana");
      hero.setPower("Fire Kick");
      hero.attack();
  • Encapsulation
    • Pembungkusan variable pada suatu class agar tidak bisa sembarangan diakses dari luar classnya
    • Caranya dengan menambahkan akses modifier private pada variable, lalu membuat public method getter dan setter untuk variable tersebut agar bisa diakses dari class yang lain.
  • Polymorphism
    • Poly artinya banyak, Morphism artinya bentuk, jadi Polymorphism artinya banyak bentuk
    • Polimorfisme dinamis menggunakan method overriding, misalnya dengan membuat method didalam sebuah subclass dimana mengoverride / menindih method yang ada di parent classnya. Contohnya method attach diatas.
    • Polimorfisme statis menggunakan cara overloading, dimana nama method / fungsinya sama tapi memiliki type parameter yang berbeda
    • Contoh Overloading
    • class Lingkaran {
      
          // method menghitung luas dengan jari-jari
          float luas(float r){
              return (float) (Math.PI * r * r);
          }
      
          // method menghitung luas dengan diameter
          double luas(double d){
              return (double) (1/4 * Math.PI * d);
          }
      
      }
  • Abstrack Class
    • Class yang masih abstrack sehingga tidak bisa langsung digunakan, seperti class Human atau SuperHero diatas.
    • Abcstract class harus memiliki minimal 1 method abtract
    • // ini abstrak method
      void sayHello();
      
      // ini bukan abstrak method karena
      // punya implementasi di body method
      void greeting(){
        System.out.println("Hello Java");
      }
    • Agar sebuah abstract class dapat digunakan maka perlu membuat subclass yang mengimplementasikan abstract method dari parentnya
    • public abstract class Shape {
          
          String color;
          
          void setColor(String color){
              this.color = color;
          }
          
          String getColor(){
              return this.color;
          }
          
          abstract float getArea();
      }

    • public class Triangle extends Shape {
      
          private float base;
          private float height;
      
          public Triangle(int base, int height) {
              this.base = base;
              this.height = height;
          }
      
          
          @Override
          float getArea() {
              return 0.5f * base * height;
          }
          
      }

Komentar