C O N S T R U C T O R & D E S T R U C T O R
Konstruktor adalah metode yang menentukan nilai awal saat membuat objek. Saat program berjalan,
konstruktor menentukan nilai awal segera setelah perintah baru membuat objek. Berikut adalah beberapa hal dasar yang
perlu diingat ketika bekerja dengan desainer:
- Nama Constructor sama dengan nama Class.
- Tidak ada return type yang diberikan kedalam Constructor Signature.
- Tidak ada return stetement, didalam tubuh constructor.
Constructor Dalam Java
# 1
package Constructor;public class User {public String username;public String password;public String Nama;public int NIM;public double tinggi,berat;public User(String username, String password, String Nama, int NIM, double tinggi, double berat){this.username = username;this.password = password;this.Nama = Nama;this.NIM = NIM;this.tinggi = tinggi;this.berat = berat;}}class DemoConstructor{public static void main(String[] args) {User mahasiswa = new User("Objek Mahasiswa", "Baru/New/Anyar","Erlangga J", 4121053, 183.5, 90);System.out.println("===============================");System.out.println("Username: " + mahasiswa.username);System.out.println("Password: " + mahasiswa.password);System.out.println("Nama: " + mahasiswa.Nama);System.out.println("NIM: " + mahasiswa.NIM);System.out.println("Tinggi Badan: " + mahasiswa.tinggi);System.out.println("Berat Badan: " + mahasiswa.berat);System.out.println("===============================");}}
Syarat Membuat Constructor :
- Cara membuat constructor adalah dengan menuliskan nama method constructor sama seperti nama class.
- Pastikan memberikan modifier public kepada Constructor, karena ia akan dieksekusi saat pembuatan objek (instance).
- Karena Constructor kegunaannya menyiapkan data untuk class maka harus membuat parameter sebagai inputan untuk constructor.
# 2
package Constructor;public class Konstruktor {String Nama;int nim;float nilaiakhir;Konstruktor (String nama, int NIM, int nilai_akhir){Nama = nama;nim = NIM;nilaiakhir = nilai_akhir;}public String grade() {String nilgrade;if(nilaiakhir >= 90)nilgrade = "A";else if(nilaiakhir >= 75)nilgrade = "B";else if(nilaiakhir >= 65)nilgrade = "C";else if(nilaiakhir >= 55)nilgrade = "D";elsenilgrade = "E";return nilgrade;}public void cetak(){System.out.println();System.out.println("======================");System.out.println("Nama Mahasiswa = " + Nama);System.out.println("Nama Mahasiswa = " + nim);System.out.println("IPK yang didapat = " + grade());System.out.println("======================");System.out.println();}public static void main(String[] args) {Konstruktor hasil = new Konstruktor("Erlangga J", 4121053, 98);Konstruktor Terima = new Konstruktor("Bayu Zidan", 4121000, 67);hasil.cetak();Terima.cetak();}}
Dan hasil dari Output Class tersebut seperti berikut :
Destructor
dalam Java
Destruktor adalah metode khusus yang dieksekusi ketika suatu objek dihapus dari
memori. Java sendiri tidak memiliki metode destruktor karena Java menggunakan gerbage
collector untuk manajemen memori. Oleh karena itu, gerbage collector secara
otomatis menghapus objek yang tidak digunakan.
Sementara untuk bahasa pemrograman lain, seperti C++
kita bisa membuat destructor sendiri seperti ini:
class User {
public:
User( String *username ); // <-- ini constructor
~User(); // <-- ini destructor.
private:
String username;
String password;
};
Percobaan Di Package BangunDatar
package BangunDatar;public class BangunDatar {float luas(){System.out.println();System.out.println("============================");System.out.println("Menghitung laus bangun datar");return 0;}float keliling(){System.out.println("Menghitung keliling bangun datar");System.out.println("============================");System.out.println();return 0;}}
package BangunDatar;public class Lingkaran extends BangunDatar{// jari-jari lingkaranpublic float r;protected Lingkaran(float jari2){this.r = jari2;}public float luas(){float luas = (float) (Math.PI * r * r);System.out.println("Luas lingkaran: " + luas);return luas;}public float keliling(){float keliling = (float) (2 * Math.PI * r);System.out.println("Keliling Lingkaran: " + keliling);return keliling;}}
package BangunDatar;class Persegi extends BangunDatar {private float sisi;Persegi(float s){this.sisi = s;}float luas(){float luas = sisi * sisi;System.out.println("Luas Persegi: " + luas);return luas;}float keliling(){float keliling = 4 * sisi;System.out.println("Keliling Persegi: " + keliling);return keliling;}void setsisi(float s){sisi = s;}}
package BangunDatar;class PersegiPanjang extends BangunDatar {private double p,l;public PersegiPanjang(double p, double l){this.p = p;this.l = l;}public double getluas(){double luas;luas = p*l;System.out.print("Luas Persegi Panjang: ");return luas;}public double getKll(){double kll;kll= 2*(p+l);System.out.print("Luas Persegi Panjang: ");return kll;}}
package BangunDatar;public class Segitiga extends BangunDatar {float alas;float tinggi;public Segitiga(float a, float t){this.alas=a;this.tinggi=t;}float luas() {float luas = (float) 1/2 * (alas * tinggi);System.out.println("Luas Segitiga: " + luas);return luas;}float keliling(){float miring = (float) Math.sqrt((alas*alas) + (tinggi*tinggi));float keliling = (float) alas+tinggi+miring;System.out.println("Keliling Lingkaran: " + keliling);return keliling;}}
package BangunDatar;public class Proses {public static void main(String[] args) {// membuat objek bangun datarBangunDatar bangunDatar = new BangunDatar();// membuat objek persegi dan mengisi nilai propertiPersegi persegi = new Persegi(8);// membuat objek Lingkaran dan mengisi nilai propertiLingkaran lingkaran = new Lingkaran(14);// membuat objek Persegi Panjang dan mengisi nilai propertiPersegiPanjang gPersegiPanjang = new PersegiPanjang(12, 10);// membuat objek Segitiga dan mengisi nilai propertiSegitiga Segitiga = new Segitiga(20, 10);// memanggil method luas dan kelilingbangunDatar.luas();bangunDatar.keliling();System.out.println();persegi.luas();persegi.keliling();System.out.println("============================");System.out.println();lingkaran.luas();lingkaran.keliling();System.out.println("============================");System.out.println();System.out.println(+gPersegiPanjang.getluas());System.out.println(+gPersegiPanjang.getKll());System.out.println("============================");System.out.println();Segitiga.luas();Segitiga.keliling();System.out.println("****************************");}}