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