Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Abstraksi Java Dijelaskan: Sederhanakan Kode & Tingkatkan Keterbacaan

Menurut kamus, abstraksi adalah kualitas menangani ide daripada peristiwa. Misalnya, saat Anda mempertimbangkan kasus email, detail kompleks seperti apa yang terjadi segera setelah Anda mengirim email, protokol yang digunakan server email Anda disembunyikan dari pengguna. Oleh karena itu, untuk mengirim email Anda hanya perlu mengetik konten, menyebutkan alamat penerima, dan klik kirim.

Demikian pula dalam pemrograman berorientasi objek, abstraksi adalah proses menyembunyikan detail implementasi dari pengguna, hanya fungsionalitas yang akan diberikan kepada pengguna. Dengan kata lain, pengguna akan memiliki informasi tentang apa yang dilakukan objek daripada bagaimana melakukannya.

Di Java, abstraksi dicapai menggunakan kelas abstrak dan antarmuka.

Kelas Abstrak

Sebuah kelas yang mengandung kata kunci abstract dalam deklarasinya dikenal sebagai kelas abstrak.

Contoh

Bagian ini memberikan contoh kelas abstrak. Untuk membuat kelas abstrak, gunakan kata kunci abstract sebelum kata kunci class, dalam deklarasi kelas.

 /* File name : Employee.java */ public abstract class Employee { private String name; private String address; private int number; public Employee(String name, String address, int number) { System.out.println("Constructing an Employee"); this.name = name; this.address = address; this.number = number; } public double computePay() { System.out.println("Inside Employee computePay"); return 0.0; } public void mailCheck() { System.out.println("Mailing a check to " + this.name + " " + this.address); } public String toString() { return name + " " + address + " " + number; } public String getName() { return name; } public String getAddress() { return address; } public void setAddress(String newAddress) { address = newAddress; } public int getNumber() { return number; } } 

Anda dapat melihat bahwa kecuali metode abstrak, kelas Employee sama dengan kelas normal di Java. Kelas sekarang abstract, tetapi masih memiliki tiga bidang, tujuh metode, dan satu konstruktor.

Sekarang Anda dapat mencoba membuat instance kelas Employee dengan cara berikut:

 /* File name : AbstractDemo.java */ public class AbstractDemo { public static void main(String [] args) { /* Berikut ini tidak diizinkan dan akan menghasilkan error */ Employee e = new Employee("George W.", "Houston, TX", 43); System.out.println("\n Panggil mailCheck menggunakan referensi Employee--"); e.mailCheck(); } } 

Saat Anda mengkompilasi kelas di atas, akan menghasilkan error berikut:

 Employee.java:46: Employee is abstract; cannot be instantiated Employee e = new Employee("George W.", "Houston, TX", 43); ^ 1 error 

Mewarisi Kelas Abstrak

Kita dapat mewarisi properti kelas Employee seperti kelas konkret dengan cara berikut:

Contoh

 /* File name : Salary.java */ public class Salary extends Employee { private double salary; // Annual salary public Salary(String name, String address, int number, double salary) { super(name, address, number); setSalary(salary); } public void mailCheck() { System.out.println("Within mailCheck of Salary class "); System.out.println("Mailing check to " + getName() + " with salary " + salary); } public double getSalary() { return salary; } public void setSalary(double newSalary) { if(newSalary >= 0.0) { salary = newSalary; } } public double computePay() { System.out.println("Computing salary pay for " + getName()); return salary/52; } } 

Di sini, Anda tidak dapat membuat instance kelas Employee, tetapi Anda dapat membuat instance kelas Salary, dan menggunakan instance ini Anda dapat mengakses semua tiga bidang dan tujuh metode kelas Employee seperti yang ditunjukkan di bawah ini.

 /* File name : AbstractDemo.java */ public class AbstractDemo { public static void main(String [] args) { Salary s = new Salary("Mohd Mohtashim", "Ambehta, UP", 3, 3600.00); Employee e = new Salary("John Adams", "Boston, MA", 2, 2400.00); System.out.println("Call mailCheck using Salary reference --"); s.mailCheck(); System.out.println("\n Call mailCheck using Employee reference--"); e.mailCheck(); } } 

Ini menghasilkan hasil berikut:

Keluaran

 Constructing an Employee Constructing an Employee Call mailCheck using Salary reference -- Within mailCheck of Salary class Mailing check to Mohd Mohtashim with salary 3600.0 Call mailCheck using Employee reference-- Within mailCheck of Salary class Mailing check to John Adams with salary 2400.0 

Metode Abstrak

Jika Anda ingin suatu kelas mengandung metode tertentu tetapi Anda ingin implementasi aktual dari metode tersebut ditentukan oleh kelas anak, Anda dapat mendeklarasikan metode di kelas induk sebagai abstrak.

Berikut adalah contoh metode abstrak.

Contoh

 public abstract class Employee { private String name; private String address; private int number; public abstract double computePay(); // Remainder of class definition } 

Mendeklarasikan metode sebagai abstrak memiliki dua konsekuensi:

Catatan – Akhirnya, kelas turunan harus mengimplementasikan metode abstrak; jika tidak, Anda akan memiliki hierarki kelas abstrak yang tidak dapat diinstantiasi.

Misalkan kelas Salary mewarisi kelas Employee, maka seharusnya mengimplementasikan metode computePay() seperti yang ditunjukkan di bawah ini:

 /* File name : Salary.java */ public class Salary extends Employee { private double salary; // Annual salary public double computePay() { System.out.println("Computing salary pay for " + getName()); return salary/52; } // Remainder of class definition } 

java

  1. Memahami Kata Kunci final Java: Variabel, Metode, dan Kelas
  2. Operator instanceof Java: Panduan Lengkap
  3. Kelas dan Metode Abstrak Java: Panduan Lengkap
  4. Memahami Kelas Bersarang Statis Java: Penggunaan, Perbedaan, dan Contoh
  5. Menguasai Kelas Dalam Anonim Java: Definisi, Sintaks, dan Contoh Praktis
  6. Pola Singleton Java Dijelaskan: Cara Menerapkan dan Menggunakannya dengan Aman
  7. Menguasai Refleksi Java: Memeriksa Kelas, Metode, dan Field pada Waktu Eksekusi
  8. Menguasai Java ObjectOutputStream: Serialisasi, Metode, dan Contoh Praktis
  9. Menguasai Java Generics – Membangun Kode yang Dapat Digunakan Kembali dan Aman Tipe
  10. Pengoperasian File Java dengan java.io – Pembuatan, Pembacaan, Penulisan & Penghapusan