Final, Super, This, Public, Private Protected JAVA (PBO PART 2)


Final

Final dapat dibagi menjadi 3 macam yaitu :

- Final Field 

Apabila suatu field dideklarasikan final, maka field tersebut tidak bisa diubah lagi nilainya (menjadi konstanta).

Contoh :

class katt
{
  final int jumlah_kaki = 4; //field (dideklarasikan final)
}

Field jumlah_kaki tidak bisa diubah lagi nilainya.


- Final Method 

Apabila suatu method dideklarasikan final, maka kita tidak bisa melakukan overriding untuk method tersebut.

Contoh :

class katt
{
  final void suara()
  {
    System.out.println("Miaww...");
  }
}
class siam extends katt  //siam adalah turunan dari katt
{
  void suara()  // overriding akan menghasilkan error, method 
  {                        // suara() pada katt dideklarasikan final
    System.out.println("Murr...Murr...");
  }
}

Method suara() pada katt tidak bisa di-override.


- Final Class

Apabila suatu class dideklarasikan final, maka class tersebut tidak bisa diturunkan lagi.

Contoh :

final class katt // class katt dideklarasikan final
{
  ...
  ...
}
class siam extends katt  //siam adalah turunan dari katt
{                                              //akan menghasilkan error(class katt
  ...                                           //dideklarasikan final)
}


Super

Keyword super digunakan untuk memanggil method pada superclass.

Contoh :

class katt
{
  public void suara()
  {
    System.out.println("Miaww...");
  }
}
class siam extends katt  //siam adalah turunan dari katt
{
  public void mengeong()
  {
    super.suara(); //memanggil method suara pada superclass katt
  }
 
  public static void main(String[] args)
  {
    siam siam1 = new siam();
    siam1.suara(); //mencetak "Miaww..."


This 

This digunakan untuk menujuk pembuat kelas(variabel instant) dan digunakan untuk menyatakan objek sekarang atau object dalam class tersebut.
Contoh this :

class manusia
{
            int a = 1 ;         //field (dideklarasikan private)
            int b = 1  ;
           
            public void set_nama()            //method (dideklarasikan private)
            {
            System.out.println(a)  ; //1
                        System.out.println(b) ; // 1
            }
           
            public void set_nama2(int a)   //10 method (dideklarasikan public)
            {
            System.out.println(this.a) ;  //1
            System.out.println(a) ;            //10
            this.a= a; // dalam kelas yang sama varibel bisa di akses ; // method dalam kelas 
            yang sama bisa akses
            //System.out.println(a) ;
           
System.out.println(this.a) ;
           
            System.out.println(b) ;
            }
           
                       
            public void set_nama3()          //10 method (dideklarasikan public)
            {
            System.out.println("set nama 3") ;     
            System.out.println(a) ;  //1
           
            }
           
}



class tes_manusia
{
            public static void main(String[] args)
            {
                        manusia orang_1 = new manusia();
                        orang_1.set_nama() ;
                        orang_1.set_nama2(10);
                        orang_1.set_nama3() ;


                        }
}



Private,  Public dan Protected

Private berarti bahwa pengaksesan suatu variabel instan atau metode hanya dapat dilakukan dalam satu kelas tidak bisa diakses dari luar kelas.
Public berarti bahwa pengaksesan suatu varibel instan atau metode dapat dilakukan dari luar kelas
Protected berguna untuk mengatur agar suatu variabel instan ataupun metode yang terdapat pada sebuah kelas dapat diakses pada kelas itu sendiri dan sub kelas.

Contoh :

class manusia
{
            private String nama = "baru";   //field (dideklarasikan private)
            String nama2 ;
           
            private void set_nama(String nama)     //method (dideklarasikan private)
            {
                        this.nama=nama;
                        System.out.println(nama) ;
            }
            public void set_nama2(String nama)    //method (dideklarasikan public)
            {
                        this.nama=nama;
                        // dalam kelas yang sama varibel bisa di akses
                        set_nama(nama) ;
                        // method dalam kelas yang sama bisa akses
                        System.out.println(nama) ;
            }
}

class manusia2 extends manusia // turunan kelas manusia
{

            public void set_nama2(String nama)   
            //method (dideklarasikan public)
            {
                        nama = nama;
                       
                        //super.set_nama(nama) ;
            //  method dalam turunan kelas manusia, tidak bisa akses set nama
                        super.set_nama2(nama) ;
                       
            }
           
}

class tes_manusia
{
            public static void main(String[] args)
            {
                        manusia orang_1 = new manusia();
                        orang_1.set_nama2("Hendri");
                        //orang1.nama=("Hendri S");
                        // error! nama dideklarasikan private pada class manusia
                        manusia2 orang_2 = new manusia2();
                        orang_2.set_nama2("Hendri2");
                        }
}


Class Diagram

Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi).

Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan

satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.
Class memiliki tiga area pokok :

1. Nama (dan stereotype)
2. Atribut
3. Metoda


Hubungan Antar Class

  1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class.
  2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
  3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
  4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian.   

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
This Theme Modified by Kapten Andre based on Structure Theme from MIT-style License by Jason J. Jaeger