OOP Concept in Java with IntelliJ IDE - Part V (Access Modifier dan Keyword STATIC)
بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم
Di postingan sebelumnya kita telah belajar mengenai CONSTRUCTOR. kali ini kita akan belajar tentang Access Modifier dan Keyword STATIC by practice tentunya. oke langsung buat 2 buah package baru untuk memudahkan pemahaman kita tentang materi postingan ini. beri nama masing-masing package "AccessModifier_dan_KeywordSTATIC" dan "AccessModifier_dan_keywordSTATIC2" atau terserah anda. kemudian buat 2 class baru di package pertama dengan nama "Akses" sebagai main classnya dan satu class lagi dengan nama misal saja 'BelajarKeywordStatic'. juga buat 2 class baru di package kedua dengan nama "Akses" sebagai main classnya dan satu class lagi dengan nama misal saja 'Student' atau terserah anda. kemudian masukkan kode program berikut di masing-masing class tersebut:
Code di Class BelajarKeywordStatic (Package pertama):
package AccessModifier_dan_KeywordSTATIC;
public class BelajarKeywordStatic {
static String ibu = "Siti Imro'atul K"; //variable diberi static
static int umur=50;
String pekerjaan;
public static void tanyaNama(){ //karena method diberi Static,
System.out.println("nama ibu = " +ibu); //maka utk dpt mengakses data "ibu" perlu di kasi static jg
}
//
public static int tanyaUmur(){
int hasilUmur = --umur;
System.out.println("Umur ibu = " +umur);
return umur;
}
}
Code di Class Akses (Package pertama):
package AccessModifier_dan_KeywordSTATIC;
import AccessModifier_dan_keywordSTATIC2.Student; //import class2 di package lain
public class Akses {
public static void main(String[] args){
String batas="========================================mulai belajar keyword STATIC=============================================";
Student newObject = new Student();
System.out.println("warna kulit = " +newObject.warnaKulit); //warna kulit bisa diakses dr package ini karena public
newObject.ultah(100);
newObject.keTuaan();
System.out.println(batas);
//keyword Static
BelajarKeywordStatic.tanyaNama(); //naahh,... pemanggilannya tak perlu lg bikin objek baru lg
BelajarKeywordStatic.tanyaUmur(); //tinggal panggil Class nya lalu data/method yg mau ditampilkan
}
}
Code di Class Student (Package kedua):
package AccessModifier_dan_keywordSTATIC2;
public class Student {
protected String nama = "dzaki faizal m"; //bisa diakses di 1 package, class ini, dan class turunan
private int umur = 99; //bisa diakses di class ini aja
int tinggi = 170; //tanpa hak akses (default). cuma bisa diakses di 1 package yg sama dan class ini aja.
public final String warnaKulit = "merah jambu"; //bisa diakses di semua
private String batas="==============================================================================================";
public int ultah(int umur){ //agar private umur bisa diakses keluar maka saya bikin method public
this.umur = umur; //private hanya bisa diakses di class ini aja
System.out.println("ini ultah yg ke-" +umur);
return umur;
}
//lagi
public void keTuaan(){
System.out.println(batas);
System.out.println("umur dzaki " +umur +" tahun");
System.out.println("bikin method biar bisa akses private dr luar class");
}
}
Code di Class Akses (Package kedua):
package AccessModifier_dan_keywordSTATIC2;
public class Akses {
public static void main(String[] args){
Student newObjek = new Student();
System.out.println(newObjek.nama +" tinggi = " + newObjek.tinggi); //nama dan tinggi masi bisa diakses dr class lain dlm satu package krn (protected & default)
}
}
/** * macam access modifier:
* 1. tanpa hak akses = hanya dpt diakses di 1 package dan class itu sendiri (tiap kita bikin method atau variable tanpa 2,3,4 scr default dah pake ini)
* 2. private = hanya di class sendiri aja
* 3. public = bisa diakses disemua
* 4. protected = di 1 package, class itu, dan di sub2 kelas(class2 turunannya)
* * ==> yg bisa dikasi hak akses = variable, method, class */
/** * Kegunaan dan aturan2 static = *
1. Atribut/variable, method, dan inner class(nested Class) yg udah dikasi Static * maka utk memanggilnya di Class lain ga perlu bikin2 object baru lg(langsung bisa diakses) *
2. agar suatu data dlm (variable, method, dan inner class) yg dikasi Static dpt diakses, maka data tersebut jg harus diberi keyword Static */
ٱلْـحَـمْـدُ للهِ