Anda di halaman 1dari 25

PERTEMUAN X

Constructor, OVERLOADING, SUPER, THIS,


OVERRIDING
Modul 5 - Constructor, overloading super this overriding 2

Constructor

• Conctructor adalah metod dari suatu class yang memiliki karakteristik:


- otomatis akan dieksekusi jika suatu objek class tersebut diciptakan
- didefinisikan dengan modifier public
- sama dengan nama class
- bisa mengandung atau tidak parameter
- dapat didefinisikan lebih dari satu macam definisi (biasanya ini yang terjadi)
• Jika Construcor tidak didefinisikan :
- saat objek dibuat hanya memiliki satu pilihan membuat objek , yaitu :
namaClass namaObjek= new namaClass();
Untuk ases selanjutnya terhadap data dan metod digunakan teknik dalam
pembatasan (modifier) dari data dan metodnya.
Contoh class tanpa constructor
Contoh class Data didefinisikan
tanpa constructor Hasil program

Pertanyaannya : Jika objek dibuat dan sekaligus akan


merubah/memberi nilai baru bagi P dan Q caranya bagaimana?
Itulah diperlukannya constructor !!

Modul 5 - Constructor, overloading supe 3


r this overriding
Class dengan 1 constructor saja

1 constructor : mengisi P dan Q


Hasil program

Pertanyannya :
1. Bagaimana jika kita tidak akan mengubah nilai P dan Q, tetapi
menggunakan nilai P=88 dan Q=77 ?
2. Bagaimana pula jika yang akan kita ubah Cuma nilai P saja atau Q saja

Modul 5 - Constructor, overloading supe 4


r this overriding
PERTEMUAN VI
Constructor, OVERLOADING, SUPER, THIS,
OVERRIDING
Construktur default digunakan
• Construktor default Hasil program
public Data(){ }

Jika constructor default digunakan maka sebagai akibatnya data yang


didefinisikan secara defaullt juga akan digunakan.
Nilai P=88 dan Q=77 adalah nilai default yang digunakan seperti nampak
dalam output program

Modul 5 - Constructor, overloading supe 6


r this overriding
Banyak constructor

Membuat objek dengan 3 cara Hasil program

Pada data1 : P, Q default


Pada data2 : Q default

Ternyata program dapat memilih constructor yang mana harus digunakan


dengan cara melihat parameter yang dilewatkan/tidak dilewatkan

Modul 5 - Constructor, overloading supe 7


r this overriding
Membuat objek tanpa parameter dengan
constructor berparameter
• Berikut ini membuat objek data dengan
tanpa melewatkan nilai parameter

Ternyata ketika telah didefinisikan constructor dengan parameter, kita


tidak dapat lagi membuat objek tanpa parameter. Program gagal
dicompile.

Solusi dari masalah ini adalah dengan meng-overloading


conctructor

Modul 5 - Constructor, overloading supe 8


r this overriding
Modul 5 - Constructor, overloading super this overriding 9

Overloading
• Adalah mendefinisikan method yang memiliki nama yang
sama, tetapi dengan signature (data type parameter &
parameter number) yang berbeda dalam definisi class
yang sama.
• Constructor == method  bisa dioverload (lihat contoh
sebelumnya)
Overloading

• Overloading adalah mendefinisikan lebih dari satu constructor,


dengan parameter yang berbeda-beda sehingga pada saat
membuat objek maka akan dapat dipilih constructor yang mana
yang akan digunakan.
• Salah satu constructor itu biasanya disebut constructor default
(biasanya didefinisikan tanpa parameter)
• Contoh :
Untuk class Data pada program sebelumnya, jika didefinisikan
constructor default :
public Data(){ };
maka ketika membuat objek dengan :
Data data=new Data(); tidak akan ada masalah

Modul 5 - Constructor, overloading supe 10


r this overriding
Modul 5 - Constructor, overloading super this overriding 11

Contoh Overloading 1
class Pertambahan{

public void tambah1(){


int a=5, b=10;
System.out.println("Hasil Pertambahan dari method tambah1 ke-1 = "+
(a+b));}

public void tambah1(int x, int y){


System.out.println("Hasil Pertambahann dari method tambah1 ke-2 = "+
(x+y)); }

public static void main(String [] args){


Pertambahan pp;
pp = new Pertambahan();
pp.tambah1();
pp.tambah1(5,5); }}
Modul 5 - Constructor, overloading super this overriding 12

Sample In Java
• void cetakNama() {
System.out.println("Nama = " + nama);
}
• void cetakNama(String nama) {
System.out.println("Nama = " + nama);
}
• void cetakNama(int nama) {
System.out.println("Nama = " + nama);
}
• // not overloading
void cetakNama(String namaSaya) {
System.out.println("Nama = " + namaSaya);
}
Modul 5 - Constructor, overloading super this overriding 13

Contoh Overloading 2
class overloading{
public void segitiga(){
int alas=5, tinggi=10;
System.out.println("Luas segitiga satu = "+(alas*tinggi)/2);
}
//Metod segitiga di overloading dengan 2 parameter (int x, int y)
public void segitiga(int x, int y){
System.out.println("Luas segitiga dua = "+(x*y)/2);
}
public static void main(String [] args){
System.out.println("I Gede John Arissaputra");
System.out.println("1404505066");
System.out.println("Contoh Overloading");
System.out.println("");
overloading s3;
s3 = new overloading();
s3.segitiga();//memanggil metod segitiga
s3.segitiga(20,8);//memanggil metod segitiga
}}
Modul 5 - Constructor, overloading super this overriding 14

Keyword this
• Kata kunci “this” sangat berguna untuk menunjukkan suatu
member dalam class-nya sendiri. Kata kunci “this” dapat
digunakan untuk data member, untuk method, dan untuk
konstruktor. Adapun format penulisannya adalah:
this.data_member -> merujuk pada data member
this.nama_method -> merujuk pada method
this() -> merujuk pada konstruktor
Modul 5 - Constructor, overloading super this overriding 15

Contoh class Anjing

Operator this berarti


mangacu pada objek
yang sedang digunakan
Modul 5 - Constructor, overloading super this overriding 16

Program utama yang menguji


Hasil programnya …

Modul 5 - Constructor, overloading supe 17


r this overriding
Modul 5 - Constructor, overloading super this overriding 18

Keyword super
• Keyword “super” digunakan oleh subclass untuk
memanggil konstruktor yang berada pada superclass-
nya.
• Contoh untuk memanggil konstruktor milik superclass-
nya:
super()
super(parameter)
• Contoh untuk memanggil method milik superclass-nya:
super.namaMethod(parameter)
Modul 5 - Constructor, overloading super this overriding 19

Overriding
• Overriding merupakan suatu keadaan dimana kelas anak dapat
mengubah /memodifikasi / memperluas data dan method pada
kelas induk.
• Mendefinisikan method dengan nama sama pada class yang
berbeda.
• Konsep dapat di manfaatkan dalam beberapa kasus inheritance,
di mana menginginkan penamaan method dengan nama sama
namun berbeda dalam impelementasinya
• Keuntungan Overriding :
Dapat menambahkan sifat / atribut pada kelas induknya
Modul 5 - Constructor, overloading super this overriding 20

Overriding
• Overriding adalah menulis kembali method superclass
sama persis, mulai dari nama method dan isinya dan
mengimplementasi kembali di subclassnya. Overriding
dipakai ketika menggunakan method yang sama tapi
berbeda implementasinya atau dengan kata lain,
overriding adalah suatu keadaan dimana method pada
subclass memodifikasi method pada parent /super
class-nya.
• Overriding memiliki ciri-ciri sebagai berikut:
- Nama method harus sama
- Daftar parameter harus sama
- Return type harus sama
Modul 5 - Constructor, overloading super this overriding 21

Overriding

• Pointnya :
• Overriding method mempunyai nama method yang
sama
• Jumlah parameter dan tipe parameter serta nilai kembalian
(return) method yang di override.
• Sintaks overriding:
super.namaMethod(parameter)
Modul 5 - Constructor, overloading super this overriding 22

Contoh Overriding 1
class Nama{
public void Sapa(){
System.out.println("Bill Gates"); }
public static void main(String [] args){
Siapa ss;
Nama nn;
ss = new Siapa();
nn = new Nama();
ss.Sapa();//memanggil method Sapa() pada class Siapa
nn.Sapa();//memanggil method Sapa() pada class Nama
}}
class Siapa extends Nama{
//Method Sapa() pada class Nama di override
public void Sapa(){
System.out.println("Steve Jobs"); }}
Modul 5 - Constructor, overloading super this overriding 23

Contoh Overriding 2
Modul 5 - Constructor, overloading super this overriding 24
Modul 5 - Constructor, overloading super this overriding 25

Anda mungkin juga menyukai