A. EXTENDS
Ada yang pernah nemuin statement extends di java? Atau mungkin sudah pernah nemuin statement extends tapi masih belum ngerit arti atau maksud dari statement itu. Statement itu biasanya berbentuk seperti ini :
Class B extends A {…}
Statement extend digunakan oleh sebuah class baru untuk mendapatkan semua variable dan method dari class yang di extendnya. Dan apabila di class baru ini terdapat variable atau method dengan nama yang sama dengan variable dan method dari class yang di extend, maka secara otomatis variable atau method yang ada di class yang di extend akan di overwrite, khusus untuk kondisi di dalam class yang baru ini.
Sebagai contoh:
class B {
int x;
void setIt (int n) { x=n;}
void increase () { x=x+1;}
void triple () {x=x*3;};
int returnIt () {return x;}
}
class C extends B {
void triple () {x=x+3;} // override existing method
void quadruple () {x=x*4;} // new method
}
public class GetRich {
public static void main(String[] args) {
B b = new B();
b.setIt(2);
b.increase();
b.triple();
System.out.println( b.returnIt() ); // prints 9
C c = new C();
c.setIt(2);
c.increase();
c.triple();
System.out.println( c.returnIt() ); // prints 6
}
}
B. SUPER
Subclass juga dapat memanggil constructor secara eksplisit dari superclass terdekat. Hal ini dilakukan dengan pemanggil construktor super. Pemanggil constructor super dalam
constructor dari subclass akan menghasilkan eksekusi dari superclass constructor yang bersangkutan, berdasar dari argumen sebelumnya.
Sebagai contoh, pada contoh class sebelumnya. Person dan Student, kita tunjukkan contoh dari pemanggil constructor super. Diberikan kode berikut untuk Student seperti,
super( "SomeName", "SomeAddress" );
System.out.println("Inside Student:Constructor");
}
Kode ini memanggil constructor kedua dari superclass terdekat (yaitu Person) dan
mengeksekusinya. Contoh kode lain ditunjukkan sebagai berikut,
public Student(){
super();
System.out.println("Inside Student:Constructor");
}
Kode ini memanggil default constructor dari superclass terdekat (yaitu Person) dan
mengeksekusinya.
Ada beberapa hal yang harus diingat ketika menggunakan pemanggil constuktor super:
1. Pemanggil super() harus dijadikan pernyataan pertama pada constructor.
2. Pemanggil super() hanya dapat digunakan dalam definisi constructor.
3. Termasuk constructor this() dan pemanggil super() tidak boleh terjadi dalam constructor yang sama
Pemakaian lain dari super adalah untuk menunjuk anggota dari superclass(seperti
reference this). Sebagai contoh,
public Student()
{
super.name = “somename”;
super.address = “some address”;
}
C. THIS
Kata kunci this dipergunakan pada pembuatan kelas dan digunakan untuk menyatakan objek sekarang. Untuk menghindari variabel yang sama antara variabel class dengan variabel property.
Contoh listing Program :
class Siswa2{
String nama;
String nim;
void isiData ( String nama,String nim) {
this.nama=nama;
this.nim=nim;
}
public static void main ( String [ ] args){
Siswa2 mahasiswa_itn = new Siswa2 ( );
mahasiswa_itn.isiData ("Aku","0818999");
System.out.println( "Nama : "+ mahasiswa_itn.nama);
System.out.println( "Nim : " + mahasiswa_itn.nim);
}
}
Contoh listing Program :
class Siswa2{
String nama;
String nim;
void isiData ( String nama,String nim) {
this.nama=nama;
this.nim=nim;
}
public static void main ( String [ ] args){
Siswa2 mahasiswa_itn = new Siswa2 ( );
mahasiswa_itn.isiData ("Aku","0818999");
System.out.println( "Nama : "+ mahasiswa_itn.nama);
System.out.println( "Nim : " + mahasiswa_itn.nim);
}
}