Bagaimana Menerapkan Abstraksi Data di Jawa?

Diterbitkan: 2022-05-17

Abstraksi, polimorfisme, enkapsulasi, dan pewarisan adalah empat elemen dasar pemrograman berorientasi objek. Salah satunya, Abstraksi Data, akan dibahas secara detail pada artikel berikut ini. Kita juga akan belajar bagaimana melakukan abstraksi data di Java.

Daftar isi

Apa itu Abstraksi Data?

Abstraksi data adalah fitur karakteristik di mana hanya detail terpenting yang ditampilkan kepada pengguna. Pengguna tetap tidak mengetahui detail sepele atau tidak penting. Misalnya, mobil dianggap sebagai keseluruhan daripada bagian-bagiannya yang berbeda. Praktik mengidentifikasi hanya atribut yang diperlukan dari suatu item sambil membuang informasi asing yang dikenal sebagai abstraksi data.

Secara sederhana, abstraksi data menampilkan item penting kepada pengguna sambil menyembunyikan elemen yang tidak signifikan.

Kami menggunakan kata kunci "abstrak" untuk mengimplementasikan abstraksi dengan bantuan kelas dan antarmuka. Kita dapat memiliki metode abstrak dan konkret di kelas abstrak.

Apa itu Kelas Abstrak?

Dalam Pemrograman Berorientasi Objek, kelas abstrak adalah kelas yang mendeklarasikan satu atau lebih metode abstrak. Satu-satunya perbedaan antara kelas Java abstrak dan reguler adalah bahwa kelas abstrak mengandung kata kunci abstract, sedangkan kelas Java biasa tidak. Untuk deklarasi kelas abstrak, kami menggunakan kata kunci abstract sebelum nama kelasnya. Bisa ada metode abstrak dan konkret di kelas. Namun, metode abstrak tidak dapat hadir di kelas reguler. Kelas dengan setidaknya satu metode abstrak disebut sebagai kelas abstrak.

Sintaksnya adalah:

kelas abstrak publik Name_of_Class

{

Nama_of_Method abstrak publik();

}

Contoh implementasi kelas abstrak adalah:

//penamaan kelas abstrak

Kelas Demo kelas abstrak

{

//penamaan metode abstrak

abstrak void disp();

}

//melanjutkan dengan kelas abstrak

Kelas Utama kelas publik memperluas Kelas Demo

{

//mendefinisikan badan metode kelas abstrak

tampilan kosong()

{

System.out.println("Metode abstrak dipanggil.");

}

public static void main(String[] args)

{

Kelas Utama obj = Kelas Utama baru ();

//memanggil metode abstrak

obj.display();

}

}

Untuk daftar pointwise:

  • Sebuah kelas harus didefinisikan sebagai abstrak jika memiliki setidaknya satu metode abstrak.
  • Kelas yang telah dideklarasikan abstrak tidak dapat diinstansiasi.
  • Anda harus mewarisi kelas abstrak dari kelas lain dan menyediakan implementasi untuk metode abstraknya untuk menggunakannya.
  • Anda harus menyediakan implementasi untuk semua metode abstrak di kelas abstrak jika Anda mewarisinya.

Apa itu Metode Abstrak?

Metode abstrak hanya memiliki deklarasi metode dan tidak ada implementasi. Metode abstrak dapat diwakili oleh metode tanpa tubuhnya sendiri. Metode abstrak harus dideklarasikan secara eksklusif di dalam kelas abstrak.

Jika Anda ingin suatu kelas memiliki metode tetapi implementasi aktual dari metode tersebut ditentukan oleh kelas anak, tetapkan metode tersebut sebagai abstrak di kelas induk.

Keuntungan Abstraksi Data dalam Pemrograman Berorientasi Objek

  • Dalam Pemrograman Berorientasi Objek, abstraksi mengurangi kompleksitas desain program dan proses implementasinya pada perangkat lunak.
  • Keuntungan utama dari penerapan abstraksi dalam pemrograman Java adalah pengguna dapat dengan mudah mengatur kelas berdasarkan kesamaan, seperti saudara kandung, dan oleh karena itu, pewarisan data dan migrasi data menjadi mudah dan layak.
  • Warisan adalah mungkin. Sebagai contoh:

/* Nama file : DemoAbstract.java */

DemoAbstract kelas publik {

public static void main(String [] args) {

/* berikut ini tidak dapat ditulis dan memulai kesalahan */

karyawan e = karyawan baru(“Peter D.”, “Hartford, CT”, 35);

System.out.println(“\n Gunakan referensi Karyawan dan panggil MailCheck–“);

cek email();

}

}

Ini menunjukkan kesalahan berikut:

Employee.java:46: Employee adalah abstrak; tidak dapat diinstansiasi

karyawan e = karyawan baru(“Peter D.”, “Hartford, CT”, 35);

^

1 kesalahan

Jadi kami menggunakan penggunaan kelas abstrak sebagai:

/* Nama file : employee.java */

karyawan kelas abstrak publik {

String pribadi N;

String pribadi Tambahkan;

int pribadi Nomor;

Pegawai publik(String N, String Tambah, int Num) {

System.out.println(“Membangun Karyawan”);

this.nama = N;

this.address = Tambahkan;

this.number = Angka;

}

komputasi_bayar ganda publik() {

System.out.println(“Di dalam karyawan compute_pay”);

kembali 0,0;

}

public void cek surat() {

System.out.println(“Mengirimkan cek ke ” + this.name + ” ” + this.address);

}

String publik toString() {

kembali N + ” ” + Tambah + ” ” + N;

}

String publik getName() {

kembali N;

}

publik String getAddress() {

kembali Tambahkan;

}

public void setAddress(String newAddress) {

Tambahkan = alamat baru;

}

publik int getNumber() {

kembali Nomor;

}

}

Kapan kita menggunakan kelas abstrak atau metode abstrak?

Ketika kita mempertimbangkan contoh umum dari "bentuk", kita mungkin membayangkan itu digunakan mengacu pada sistem desain berbantuan komputer atau untuk simulasi video game. Jenis dasar yang dimaksud di sini adalah "bentuk", dengan setiap bentuk memiliki atribut warna, ukuran, dll. Kelas khusus dari bentuk-lingkaran, persegi, segitiga, dll., diturunkan (diwarisi) dari ini, yang masing-masing mungkin memiliki sifat dan perilaku ekstra unik. Bentuk tertentu, misalnya, bisa simetris, sementara yang lain tidak. Baik persamaan maupun perbedaan yang jelas antara bentuk-bentuk tersebut diwujudkan dalam hierarki tipe.

Oleh karena itu, bentuk dapat dianalogikan dengan kelas abstrak, sedangkan berbagai jenis bentuk dapat dilambangkan sebagai kelas konkret.

Berikut adalah skenario kehidupan nyata untuk menjelaskan kelas abstrak:

// Program Java untuk mendemonstrasikan Abstraksi

bentuk kelas abstrak {

warna tali;

daerah ganda abstrak();

String abstrak publik toString();

// kelas abstrak dapat memiliki konstruktor

bentuk publik (warna String)

{

System.out.println("Konstruktor bentuk disebut");

this.color = warna;

}

// ini adalah metode konkret

public String getColor() { mengembalikan warna; }

}

kelas Lingkaran memanjang bentuk {

r ganda;

Lingkaran publik (Warna string, ganda (r)

{

// memanggil konstruktor Bentuk

super(warna);

System.out.println("Konstruktor lingkaran dipanggil");

ini.r = r;

}

@Mengganti area ganda()

{

mengembalikan Math.PI * Math.pow(r, 2);

}

@Override publik String toString()

{

kembalikan “Warna lingkaran adalah ” + super.getColor()

+ “dan luasnya adalah : ” + luas();

}

}

kelas Persegi panjang memperluas bentuk {

panjang ganda;

lebar ganda;

Persegi Panjang publik (Warna string, panjang ganda,

lebar ganda)

{

// memanggil konstruktor Bentuk

super(warna);

System.out.println("Konstruktor persegi disebut");

this.length = panjang;

this.lebar = lebar;

}

@Override double area() { kembali panjang * lebar; }

@Override publik String toString()

{

kembalikan “Warna persegi panjang adalah ” + super.getcolor()

+ “dan luasnya adalah : ” + luas();

}

}

Tes kelas publik {

public static void main(String[] args)

{

Bentuk s1 = new Circle(“Merah”, 2.2);

Bentuk s2 = new Rectangle(“Kuning”, 2, 4);

System.out.println(s1.toString());

System.out.println(s2.toString());

}

}

Segmen kode ini adalah versi modifikasi dari yang ada di sini .

Cuplikan kode program di mana abstraksi data di Java digunakan:

// Abstraksi di Java

kelas abstrak ElecBill

{

//metode abstrak

abstrak float compBill();

}

kelas Comm memperluas ElecBill

{

float compBill() {

kembali 1.00*100;

}

}

kelas Domestik memperluas ElecBill

{

float compBill() {

kembali 0,50*75;

}

}

Kesimpulan

Abstraksi data merupakan aspek penting dari pemrograman berorientasi objek. Untuk bahasa seperti Java, abstraksi dan konsep OOP lainnya seperti pewarisan, enkapsulasi, dan polimorfisme memainkan peran penting dalam menulis program yang efisien.

Jika Anda ingin mempelajari OOP secara mendalam dan memperoleh keterampilan pemrograman kelas satu, kami sarankan untuk bergabung dengan Sertifikasi PG terkait Pekerjaan di bidang Rekayasa Perangkat Lunak yang dirancang untuk membantu siswa memperoleh keterampilan di Java, OODAP, DSA, HTML5, CSS3 , JavaScript, MERN, AWS, SQL & NoSQL Databases, Spring Boot, dll. Kursus 5 bulan ini mencakup dua spesialisasi – MERN Stack Specialization dan Cloud-Native Specialization dan menyediakan akses ke sesi konseling karir upGrad 360°.

Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Apa itu polimorfisme? Apa bedanya dengan abstraksi data?

Polimorfisme adalah generalisasi, mirip dengan abstraksi data, tetapi terjadi saat runtime. Jika ada mekanisme untuk mengakses kumpulan jenis objek yang berbeda di mana mereka tidak dapat dibedakan satu sama lain, mereka polimorfik. Jadi, meskipun tidak identik, semua objek di dalamnya memiliki tampilan dan rasa yang sama. Tujuannya adalah untuk secara drastis mengurangi pengkodean. Alih-alih menulis semua banyak permutasi untuk setiap jenis individu, Anda dapat menulis satu solusi universal.

Apa perbedaan antara Enkapsulasi dan Abstraksi Data?

ENCAPSULATION - 1. Enkapsulasi menyembunyikan data (informasi), sedangkan abstraksi menyembunyikan detail (penyembunyian implementasi). 2. Abstraksi Pemrograman Berorientasi Objek memecahkan masalah pada tingkat desain. 3. Untuk tujuan keamanan, enkapsulasi menyiratkan menyembunyikan informasi internal atau mekanisme bagaimana suatu objek melakukan sesuatu. ABSTRAKSI - 1. Sementara enkapsulasi mengikat data dan metode yang beroperasi di dalamnya, abstraksi data berkaitan dengan mengekspos antarmuka pengguna sementara mengaburkan detail implementasi. 2. Ini diselesaikan pada tingkat implementasi melalui enkapsulasi. 3. Di Java, abstraksi data memungkinkan Anda untuk berkonsentrasi pada objek informasi yang harus disertakan.

Apa fitur yang membedakan antara antarmuka dan kelas abstrak?

Antarmuka - 1. Hanya metode abstrak yang menjadi bagian dari antarmuka. 2. Warisan berganda didukung. 3. Tidak dapat menawarkan implementasi kelas abstrak. 4. Hanya metode abstrak publik yang diperbolehkan dalam antarmuka. 5. Hanya satu variabel final statis publik yang dapat digunakan di antarmuka. Kelas abstrak - 1. Abstrak, serta metode non-abstrak, dapat ditemukan di kelas abstrak. 2. Warisan berganda tidak didukung. 3. Mampu mengimplementasikan antarmuka. 4. Metode publik yang dilindungi dan abstrak keduanya dimungkinkan dalam kelas abstrak. 5. Dengan penentu akses apa pun, kelas abstrak dapat memiliki variabel final final, statis, atau statis.