Class Method Access Specifier
Class Method Access Specifier
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Outline
◼ Object Oriented Programming
◼ Encapsulation
◼ Method and toString
◼ Access Type
◼ Static
2
Object Oriented Programming
◼ Memodelkan objek dunia nyata sebagai sebuah class
dalam java
◼ Representasi objek mewakili sifat objek asli di dunia
nyata
◼ Sebuah Objek (class) memiliki
◼ Constructor
◼ Variable / Attribute
◼ Method
3
Attribute
◼ Variable (-variable) yang menyimpan hal-hal yang dimiliki sebuah objek
◼ Object memiliki 0 sampai banyak attribute
◼ Merupakan variable global
◼ Biasanya memiliki tipe akses private
◼ Disebut juga instance variable
4
Constructor
◼ Sebuah method “spesial” yang dibuat untuk meng-
instantiate objek
◼ Karena tidak perlu return value (tapi bukan void)
◼ Bersifat public
5
Constructor
◼ Constructor bisa di-overload
◼ Tapi siapkan default constructor
6
Contoh Constructor Mahasiswa
public class Mahasiswa{
……….
public Mahasiswa(){
npm = 0;
lulus = false;
}
7
Method
◼ Objek dapat dilengkapi dengan method
◼ Getter (Accessor)
◼ Method lain
8
Encapsulation
◼ Proses “membungkus” instance variable sehingga lebih aman
dalam proses pengaksesan
◼ Proses encapsulation
◼ Buat variable sebagai private
◼ Buat method public setter dan getternya
9
Setter (Mutator)
◼ Method untuk mengubah nilai sebuah attribute (private
variable)
◼ Harus bertipe public method
◼ Memiliki return void
◼ Menerima sebuah masukan (sesuai variable yang ingin
diganti)
◼ Biasanya bernama setNamaVariable
10
Contoh Setter Mahasiswa
public class Mahasiswa{
int npm = 0;
int nama = “”;
……….
……….
public void setNpm(int npm){
this.npm = npm;
}
11
Getter
◼ Method untuk mengambil nilai sebuah attribute (private
variable)
◼ Harus bertipe public method
◼ Memiliki tipe return sesuai variable yang diminta (dan
mengembalikan nilai variable tersebut)
◼ Tidak menerima masukan apapun
◼ Biasanya bernama getNamaVariable
12
Contoh Getter Mahasiswa
public class Mahasiswa{
int npm = 0;
int nama = “”;
……….
……….
public int getNpm(){
return npm;
}
◼ Instantiating
◼ m = new Mahasiswa();
◼ Initializing
◼ m.setNama(“Anto");
◼ Gabungan
◼ Mahasiswa m = new Mahasiswa(“Anto");
14
Method toString
◼ Method “spesial” milik class
objek public String
toString()
◼ Mengembalikan sebuah String yang berisi alamat objek
di dalam memory
◼ Dapat di-override oleh class yang didefinisikan oleh
tiap programmer
◼ String tersebut digunakan pada saat objek dicetak
dalam System.out.println
◼ System.out.println(m); //m adalah objek Mahasiswa
15
Contoh Method toString
◼ Class Mahasiswa
public class Mahasiswa{
……….
public String toString(){
return npm + " " + nama + “" + fakultas;
}
}
◼ Dalam main
Mahasiswa m = new Mahasiswa ();
…………
System.out.println(m); // Mencetak informasi mahasiswa
16
Method
◼ Bagian program yang berisi sebuah fungsi tertentu
◼ Informasi definisi method
◼ Tipe akses
◼ Static atau tidak
◼ Return value
◼ Nama identifier
◼ Parameter/s
◼ Method dapat memiliki overload
◼ Bagi method yang memiliki return harus diberikan return
public int jumlah(int a, int
b){ if (true)
return a + b // menyebabkan compile error, kenapa?
}
17
Access Type
◼ Tiap class, variable, method, constructor di Java dapat ditentukan
tipe aksesnya
◼ Terdapat 4 tipe akses
◼ public
◼ protected
◼ default
◼ private
18
Protected Access
◼ Dapat diakses oleh subclass
◼ Dan class dalam satu package
◼ Oleh subclass seperti public
◼ Bisa diakses dan diubah oleh subclass selayaknya
public
◼ Selain itu dianggap seperti private
19
Default Access
◼ Diberikan saat tidak ada petunjuk akses
◼ class Mahasiswa
◼ int npm;
20
Private Access
◼ Hanya dapat diakses oleh class pemiliknya
◼ Selain class yang memiliki tidak berhak untuk mengaksesnya
◼ Variable yang private tidak boleh langsung diakses oleh class lain
◼ private npm milik class Mahasiswa
◼ Dalam main tidak boleh langsung diakses
Mahasiswa m = new
mahasiswa();
m.Npm = 1234 // error
System.out.println(m1.getNama());
System.out.println(m2.getNama());
◼ Hasil yang dicetak akan berbeda tergantung instance veriable tiap objek
22
Static
◼ Misal di kelas Mahasiswa kita punya static variable
public class Mahasiswa{
……..
public static int jumlahMahasiswa; /* Bukan desain OOP
yang baik */
……..
}
◼ Maka variable tersebut dapat diakses dan diubah oleh seluruh
instance dari mahasiswa dan pada setiap instance memiliki nilai yang
sama
23
Static
◼ Karena sifatnya sama di setiap instance objek, maka static variable dapat
dipanggil langsung dari nama classnya
Mahasiswa.jumlahMahasiswa;
24
Contoh Kegunaan Static
◼ Menghitung jumlah instance yang ada
◼ Misal: berapa jumlah pelanggan yang terdaftar?
25
Review
◼ Global variable / attribute (biasanya private)
◼ Constructor/s (nama sama dengan class)
◼ Getter / Accessor (method untuk mengambil)
◼ Setter / Mutator (method untuk mengubah)
◼ Method/s: toString(), dsb
26
Have fun and enjoy
in this class
27