OVERLOADING,
OVERRIDING DAN EXCEPTION
1.
OVERLOADING
Adalah
suatu kemampuan dalam bahasa berorientasi objek
untuk menggunakan suatu nama method untuk beberapa method yang memiliki
parameter masukan yang berbeda (tipe maupun jumlah parameter). Overloading memodifikasi
secara horisontal method maupun konstruktor milik kelas super, maupun kelas
yang sama.
lebih
Jelasnya Overloading secara singkat :
·
Nama Method Boleh Sama , Tapi Jumlah Parameter Mesti berbeda
·
Nilai Yang Di Return Harus memiliki Tipe yang sama
·
Dengan
menggunakan kemampuan overload java, kita dapat memiliki lebih dari 1 method
dengan nama yang sama di dalam suatu class. [1&2]
·
Method
yang dioverload dan yang mengoverload sebenarnya adalah method-method yang
benar-benar berbeda. Mereka hanya memiliki kesamaan nama saja. [1]
·
Constructor
dapat dioverload. [2]
·
Aturan
overload : [2]
1. Method yang mengoverload HARUS merubah
argument list
2. Method
yang mengoverload BOLEH merubah return type
3. Method yang mengoverload BOLEH merubah access
modifier
4. Method yang mengoverload BOLEH melempar checked
exception yang lebih luas atau baru sama sekali dari method yang dioverload.
5. Suatu method dapat dioverload di class tersebut
atau di subclassnya.
·
Method yang mengoverload HARUS merubah
argument list [2].
Aturan ini adalah satu-satunya syarat agar dapat terjadi overload [1].
Syarat argument list
berbeda adalah salah satu dari 2 hal berikut : [1]
1. Jumlah argument berbeda
2. Jumlah argument sama, akan tetapi urut-urutan
tipe datanya adalah berbeda.
2.
OVERRIDING
Adalah
suatu kemampuan dalam berorientasi objek untuk mengubah implementasi (menimpa) suatu method yang
dimiliki oleh kelas super ketika kelas super tersebut diturunkan.
Overriding memodifikasi secara vertikal method
milik kelas super. Ada dua alasan mengapa melakukan overriding :
·
Mendefenisiksn
kembali method kelas induk secara total.
·
Menambah
behaviour tertentu pada method kelas induk.
3.
EXCEPTION
Merupakan
suatu objek error khusuh yang dibuat ketika terjadi kesalahan pada suatu
program. Setelah suatu objek exception dibuat oleh java, objek tersebut dikirim
ke program, proses ini di sebut throwing an exception. Objek exception tersebut
kemudian diterima oleh program, dan penanganan exception selanjutnya terserah
pada program.
Penanganan
exception dalam java dibuat dengan menuliskan kode program exception handling
pada source kode. Exception handling berguna untuk mencegah program menjadi
“hang”. Kode program ini secara umum terdiri dari 3 bagian yaitu\, catch dan
finally.
1.
Kategori
error dalam program :
·
Synteax
error
Error yang tejadi
apabila java compiler menemukan kesalahan pada syntax atau aturan-aturan
lainnya pada program
·
Runtime
error
Error yang terjadi
karena faktor eksternal, seperti adanya pembagian dengan nol, input yang tidak
sesuai dengan type yang diminta dan sebagainya. Kondisi ini dikenal sebagai
exception
·
Logic
error
Error yang terjadi
karena kesalahan logika pemrograman. Misalnya hasil pembagian dua buah bilangan
diberi tipe data int. hal ini menyebabkan hasil tidak valid karena dua buah
bilangan diberi tipe data int. hal ini
mnyebabkan hasil tidak valid karena ada bagian koma desimal yang akan hilang.
Contoh
program :
A.
SegiTiga.java
class
SegiTiga {
public SegiTiga(double panjang) {
System.out.println("\nVariabel =
segitiganya sam sisi");
System.out.println("Panjang =
" +panjang);
keliling(panjang);
}
public SegiTiga(double panjang, double
sisiMiring) {
System.out.println("\n2Variabel =
segitiganya sama kaki");
System.out.println("Panjang =
" +panjang+ " sisi miring = " +sisiMiring);
keliling(panjang, sisiMiring);
}
public void keliling(double panjang) {
tampilkanHasil(panjang*3);
}
public void keliling(double p, double sM) {
tampilkanHasil(2*sM+p);
}
protected void tampilkanHasil(double h) {
System.out.println("Hasil = "
+h);
}
}
Hasilnya
:
B.
MainSegiTiga.java
class MainSegiTiga {
public static void main(String [] args) {
new SegiTiga(7);
new SegiTiga(4,7);
}
}
Hasilnya :
C
OverRiding.java
class OverRiding {
public void MethodAsli() {
System.out.println("Method milik
class OverRiding dijalankan");
}
public static void main(String [] args) {
OverRiding O = new OverRiding();
O.MethodAsli();
}
}
Hasilnya :
D.
SubOverRiding.java
class
SubOverRiding extends OverRiding {
public void MethodAsli() {
System.out.println("Method yang
sudah OverRiding dijalankan");
}
public void MethodAsliSuper() {
System.out.println("Method
pemanggil MethodAsli dijalankan");
super.MethodAsli();
}
public static void main(String [] args) {
SubOverRiding SO = new
SubOverRiding();
SO.MethodAsli() ;
SO.MethodAsliSuper();
}
}
Hasilnya
:
E.
TanpaException.java
class
TanpaException {
public static void main (String [] args) {
int Nilai = Integer.parseInt
(args[0]);
System.out.println("Nilai yang
diimasukkan : " +Nilai);
}
}
Hasilnya
:
F.
CobaException.java
class
CobaException {
public static void main (String [] args) {
int nilai = 0;
try {
int Nilai = Integer.parseInt
(args[0]);
System.out.println("Nilai
yang diimasukkan : " +Nilai);
}
catch(Exception e) {
System.out.println("Pasti yang
diinput bukan Integer");
}
finally {
System.out.println("Blok
finally tetap dilakukan");
}
}
}
Hasilnya
:
G.
PembagianNol.java
class
PembagianNol {
public static void main (String [] args) {
System.out.println("Sebelum
pembagian");
try {
System.out.println(5/0);
}
catch(Throwable T) {
System.out.println("Terjadi
pembagian nol");
}
System.out.println("Sesudah
pembagian");
}
}
Hasilnya
:
H.
TesInputData.java
import
java.io.*;
class
TesInputData {
public static void main (String[] args) {
BufferedReader BR = new
BufferedReader(new InputStreamReader(System.in));
String Input = " ";
try {
System.out.println("Masukkan
data : ");
Input = "Salah";
}
finally {
System.out.println("Data yang anda
masukkan adalah " +Input);
}
}
}
Hasilnya
:
Tidak ada komentar:
Posting Komentar