Bahasa Pemrograman Lanjutan

advertisement
BAHASA
PEMROGRAMAN
LANJUTAN
Konstruktor
dan
Overloading
Konstruktor
 Metode
konstruktor adalah metode yang
dapat digunakan untuk memberikan nilai
awal saat objek dicptakan.
 Metode
ini akan dipanggil secara
otomatis oleh java ketika new dipakai
untuk menciptakan instan kelas.
Contoh Program
//Berkas: Konstruktor.java
class Mobil {
// Variabel instan
private String warna;
private int tahunProduksi;
//Konstruktor
public Mobil (String warna, int tahunProduksi){
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
//Metode
public void info(){
System.out.println("warna : " + this.warna);
System.out.println("Tahun : " + this.tahunProduksi);
}
}
public class Konstruktor {
public static void main (String [] args){
Mobil mobilku = new Mobil ("Merah", 2003);
mobilku.info();
}
}
Hasil program
Overloading Terhadap
Konstruktor
 Overloading
terhadap
konstruktor
merupakan
suatu
mekanisme
pembuatan konstruktor yang memiliki
bentuk lebih dari satu. Dalam hal ini
pembeda
antara
satu
konstruktor
dengan konstruktor yang lain berupa
jumlah parameter atau tipe parameter.
contoh program
//Berkas: Konstruktor2.java
class Mobil{
// Variabel instan
private String warna;
private int tahunProduksi;
//Konstruktor pertama
public Mobil (String warna, int
tahunProduksi){
this.warna = warna;
this.tahunProduksi =
tahunProduksi;
}
//Konstruktor kedua
public Mobil(){
}
//Metode
public void info(){
System.out.println("warna : " +
this.warna);
System.out.println("Tahun : " +
this.tahunProduksi);
}
}
public class Konstruktor2 {
public static void main (String []
args){
Mobil mobilku = new
Mobil ("Merah", 2003);
mobilku.info();
Mobil mobilmu = new
Mobil();
}
}
mobilmu.info();
Hasil program
Overloading Pada Metode
// Berkas: OverloadingMetode.java
}
class Matematika {
static public double kuadrat(double
nilai) {
return nilai * nilai;
}
}
static public int kuadrat(int nilai) {
return nilai * nilai;
}
static public double kuadrat(String
nilai) {
double bilangan;
bilangan =
Double.valueOf(nilai).doubleValue();
return bilangan * bilangan;
public class OverloadingMetode {
public static void main(String[] args) {
System.out.println(Matematika.kuadrat(
25.0));
System.out.println(Matematika.kuadrat(
25));
System.out.println(Matematika.kuadrat(
"25"));
}
}
Hasil Program
Variabel Kelas
 Variabel
Kelas adalah Variabel yang
berlaku tidak terbatas hanya pada objek
tetapi pada seluruh objek.
 Variabel
ini didefinisikaan dengan
menggunakan kata-kata kunci static.
Contoh Program
// Berkas: VariabelKelas.java
class Bilangan {
static int pencacah = 0;
private int nilai;
public Bilangan(int nilai) {
this.nilai = nilai;
this.pencacah++;
}
}
public class VariabelKelas {
public static void main(String[]
args) {
Bilangan b1 = new Bilangan(55);
b1.info();
Bilangan b2 = new Bilangan(75);
b2.info();
public void info() {
System.out.println("Nilai : " +
this.nilai);
Bilangan b3 = new Bilangan(85);
System.out.println("Pencacah : "
b3.info();
+ this.pencacah);
}
System.out.println("");
}
}
Hasil Program
PEWARISAN
Pengertian Pewarisan
 Pewarisan
merupakan konsep dalam
pemrograman berorientasi objek yang
memungkinkan untuk membuat suatu
kelas dengan didasarkan pada kelas
yang sudah ada sehingga mewarisi
semua metode dan variabelnya.
Contoh Gambar
Kelas A
variabelInstanZ
metodeX()
metodeY()
Kelas B
mewarisi Kelas
A
Kelas B
Metode W
Dengan
sendirinya
Kelas
B
mewarisi
semua
metode dan
variabel instan
milik Kelas A
yang
tidak
bersifat private
Metode
tambahan
Cara Mewariskan Kelas
//Berkas: Alpha.java
class Alpha {
private int a = 5;
public void info(){
System.out.println("a = " + a);
System.out.println("Dipanggil
pada " + this.getClass().getName());
}
}
// Berkas: Bravo.java
class Bravo extends Alpha {
private int b = 7;
}
public static void main(String[] args) {
Bravo obj = new Bravo();
obj.info();
}
Hasil program
Penentu Akses protected
// Berkas: Charlie.java
class Charlie {
private int a = 5;
protected int b = 7;
}
public void info() {
System.out.println("Dipanggil pada " +
this.getClass().getName());
System.out.println("a = " + a);
System.out.println("b = " + b);
}
Cont’
d
// Berkas: Delta.java
class Delta extends Charlie {
private int c = 9;
}
public void info() {
System.out.println("Dipanggil pada " +
this.getClass().getName());
System.out.println("b = " + b);
System.out.println("c = " + c);
}
// Berkas: PenentuProtec.java
class PenentuProtec {
public static void main(String[] args) {
Charlie objX = new Charlie();
objX.info();
}
}
Delta objY = new Delta();
objY.info();
Hasil Program
Memanggil Metode Superkelas
// Berkas: Echo.java
class Echo extends Charlie {
private int c = 9;
}
public void info() {
super.info(); // Panggil metode kelas dasar
System.out.println("c = " + c);
}
// Berkas: Superkelas.java
class Superkelas {
public static void main(String[] args) {
Echo obj = new Echo();
obj.info();
}
}
Hasil program
Perhatikan bahwa tampilan;
a=5
b=7
adalah hasil pemanggilan
superr.info();
pada metode info() milik kelas Echo.
Memanggil Konstruktor
Superkelas
// Berkas: KonstruktorSuperkelas.java
class Orang {
private String nama;
private int usia;
// Konstruktor
public Orang(String nama, int usia) {
this.nama = nama;
this.usia = usia;
}
// Metode
public void info () {
System.out.println("Nama : " + this.nama);
System.out.println("Usia : " + this.usia);
}
} // Akhir kelas Orang
class Pegawai extends Orang {
private String noPegawai;
Cont’d
// Konstruktor
public Pegawai(String noPegawai, String nama,
int usia) {
super(nama, usia);
this.noPegawai = noPegawai;
}
// Metode
public void info () {
System.out.println("No. Pegawai : " +
this.noPegawai);
super.info();
}
} // Akhir kelas Pegawai
public class KonstruktorSuperkelas {
public static void main(String[] args) {
Pegawai programmer1 = new Pegawai(
"123456", "Edi", 23);
programmer1.info();
}
}
Hasil Program
Note :
Program ini menunjukkan
adanya pemakaian override
terhadap metode milik
superkelas.
Penentu Akses Final
// Berkas: PenentuFinal.java
class Abc {
final public double PI = 3.14;
}
final void info() {
System.out.println("PI = " + PI);
}
class Xyz extends Abc {
}
public void info() { // Akan menimbulkan kesalahan
}
// karena info() tak dapat ditimpa
class PenentuFinal {
public static void main(String[] args) {
Xyz obj = new Xyz();
obj.info();
}
}
Hasil program
Objek Dalam Kelas
// Berkas: Koordinat.java
public class Koordinat {
private int x;
private int y;
public Koordinat(int x, int y) {
this.x = x;
this.y = y;
}
public void ubahX(int x) {
this.x = x;
}
public void ubahY(int y) {
this.y = y;
}
public int ambilX() {
return this.x;
}
}
public int ambilY() {
return this.y;
}
Cont’d
// Berkas: Garis.java
public class Garis {
private Koordinat posisi1;
private Koordinat posisi2;
public Garis(int x1, int y1, int x2, int y2) {
this.posisi1 = new Koordinat(x1, y1);
this.posisi2 = new Koordinat(x2, y2);
}
}
public void info() {
System.out.println("Koordinat pertama:");
System.out.println(posisi1.ambilX() + ", " +
posisi1.ambilY());
System.out.println("Koordinat kedua:");
System.out.println(posisi2.ambilX() + ", " +
posisi2.ambilY());
}
Cont’d
// Berkas: TesGaris.java
public class TesGaris {
public static void main(String[] args) {
Garis grs = new Garis(20, 30, 100, 150);
grs.info();
}
}
Hasil program
Penentu Abstract
 Java
menyediakan suatu mekanisme
yang memungkinkan
suatu metode
ditentukan dari dalam kelas tetapi tidak
disertai dengan definisinya. Metode
seperti ini dikenal dengan nama metode
abstrak, sedangkan kelasnya dinamakan
kelas abstrak.
Contoh Program
// Berkas: Kendaraan.java
public abstract class Kendaraan {
protected String nama;
public abstract void jalankan();
}
Pada pendeklarasian di atas kendaraan merupakan
kelas abstrak (perhatikan adanya kata-kata kunci
abstrak di depan kata kunci class).
Cont’d
// Berkas: TesAbstrak.java
class Sepeda extends Kendaraan {
public Sepeda(String nama) {
this.nama = nama;
}
}
public void jalankan() {
System.out.println("Duduklah di atas sadel " +
this.nama +
" dan kayuhlah..." );
}
class Minibus extends Kendaraan {
public Minibus(String nama) {
this.nama = nama;
}
public void jalankan() {
System.out.println("Duduklah di depan setir " +
this.nama +
" dan hidupkan mesin..." );
Cont’d
}
}
public class TesAbstrak {
public static void main(String[] args) {
Sepeda sepedaku = new Sepeda("Sepeda Ontel");
sepedaku.jalankan();
}
}
Minibus mobilku = new Minibus("Minibus Keri");
mobilku.jalankan();
Hasil program
Terima Kasih
Download