Apa itu Kelas Dalam di Jawa?

Diterbitkan: 2022-04-29

Konsep kelas dalam di Java adalah dasar untuk pemrograman Java. Di Jawa, kelas bersarang dan kelas dalam adalah dua ide perancangan kelas yang sangat mirip namun sedikit berbeda dan sering berjalan beriringan.

Kelas bersarang didefinisikan di dalam kelas lain dan memiliki dua jenis - kelas bersarang statis dan kelas bersarang non-statis. Di sisi lain, kelas dalam adalah jenis kelas bersarang non-statis dan lebih jauh dari tiga jenis – kelas dalam anggota, kelas dalam anonim, dan kelas dalam lokal.

Jadi, apa yang dimaksud dengan ketiga jenis kelas dalam ini, dan apa kegunaannya? Baca terus untuk mengetahuinya dalam panduan terperinci ini tentang kelas dalam Java.

Daftar isi

Arti Kelas Dalam dalam Bahasa Jawa

Kelas bersarang non-statis atau kelas dalam didefinisikan di dalam kelas lain dan memiliki akses ke anggota kelas luar (kelas terlampir). Sebaliknya, kelas bersarang statis juga merupakan kelas yang didefinisikan di dalam kelas lain, tetapi tidak seperti kelas bersarang non-statis, kelas tidak dapat mengakses variabel anggota dari kelas luarnya. Dalam kasus kelas bersarang non-statis, kita tidak diharuskan untuk membuat turunan dari kelas luar. Tetapi dalam kasus kelas dalam, pertama-tama kita harus membuat instance kelas luar untuk dapat membuat instance kelas dalam.

Sumber

Jenis Kelas Dalam di Jawa

Di Jawa, kelas dalam terdiri dari tiga jenis berikut:

  • Kelas dalam anggota
  • Kelas dalam anonim
  • Kelas dalam lokal

Sekarang, mari kita pahami setiap jenis kelas dalam dengan contoh.

1. Anggota Kelas Dalam

Kelas dalam anggota di Java adalah kelas bersarang non-statis yang dibuat di dalam kelas tetapi di luar metode. Juga disebut sebagai kelas dalam biasa, kelas dalam anggota dapat dideklarasikan dengan pengubah akses seperti pribadi, publik, default, dan dilindungi.

Sintaks untuk kelas dalam anggota adalah sebagai berikut:

kelas Luar{

//kode

kelas dalam{

//kode

}

}

Kelas dalam anggota dalam contoh Java:

Diberikan di bawah ini adalah program untuk mendemonstrasikan cara membuat kelas dalam dan mengaksesnya. Kami akan membuat kelas dalam menjadi pribadi dan menggunakan metode display_Inner() untuk mengakses kelas.

kelas DemoOuter {

int nomor;

// kelas dalam

kelas pribadi DemoInner {

cetak batal publik() {

System.out.println("Ini adalah kelas dalam");

}

}

// Mengakses kelas dalam dari metode di dalam

batalkan tampilan_Dalam() {

DemoInner batin = baru DemoInner();

batin.print();

}

}

kelas publik kelasku {

public static void main(String args[]) {

// Membuat instance kelas luar

DemoOuter luar = DemoOuter baru();

// Mengakses metode display_Inner()

outer.display_Inner();

}

}

Output: Ini adalah kelas dalam

Dalam contoh di atas, OuterDemo adalah kelas luar, InnerDemo adalah kelas dalam, kita membuat instance kelas dalam di dalam metode display_Inner(), yang dipanggil dari metode utama.

Jelajahi Kursus Rekayasa Perangkat Lunak Populer kami

TL. Tidak Program Pengembangan Perangkat Lunak
1 Master of Science dalam Ilmu Komputer dari LJMU & IIITB Program Sertifikat Keamanan Siber CTME Caltech
2 Bootcamp Pengembangan Tumpukan Penuh Program PG di Blockchain
3 Program Pascasarjana Eksekutif dalam Pengembangan Perangkat Lunak - Spesialisasi dalam DevOps Lihat semua Kursus Rekayasa Perangkat Lunak

2. Kelas Dalam Anonim

Kelas dalam anonim di Java adalah kelas dalam yang dideklarasikan tanpa nama kelas apa pun dan hanya satu objek yang dibuat. Kelas dalam anonim di Jawa dideklarasikan dan dipakai secara bersamaan. Mereka paling berharga ketika kita ingin mengganti metode kelas atau antarmuka.

Sintaks untuk kelas dalam anonim di Java adalah sebagai berikut:

AnonymousInner an_inner = new AnonymousInner() {

public void my_method() {

//kode

}

};

Kelas dalam anonim di Java dapat dibuat dengan dua cara:

  1. Menggunakan kelas
  2. Menggunakan antarmuka

Kelas dalam anonim dalam contoh Java (menggunakan kelas):

kelas abstrak Makan{

abstrak batal makan();

}

kelas TestAnonymousInner{

public static void main(String args[]){

Makan m=Makan baru(){

void makan(){System.out.println("Selamat makan!");}

};

daging();

}

}

Keluaran: Selamat makan!

Kelas dalam anonim dalam contoh Java (menggunakan antarmuka):

permainan antarmuka{

batal bermain();

}

kelas TestAnnonymousInner1{

public static void main(String args[]){

Game g=Game baru(){

public void play(){System.out.println(“Game luar ruangan”);}

};

g.play();

}

}

Keluaran: Permainan luar ruang

3. Kelas Dalam Lokal

Kelas dalam lokal di Jawa adalah kelas yang dibuat di dalam metode. Seperti dalam kasus variabel lokal, ruang lingkup kelas dalam lokal tetap dibatasi dalam metode.

Kelas dalam lokal didefinisikan di dalam blok: badan metode, klausa if, atau perulangan for. Kelas dalam lokal bukan anggota dari kelas terlampir, melainkan milik blok di mana ia didefinisikan. Jadi, meskipun kelas dalam lokal di Jawa tidak dapat memiliki pengubah akses yang terkait dengannya, Anda dapat menandainya sebagai abstrak atau final. Jika kita ingin memanggil metode kelas dalam lokal, kita harus membuat instance kelas di dalam metode.

Kelas dalam lokal dalam contoh Java:

Di bawah ini adalah contoh program untuk mendemonstrasikan cara membuat instance objek kelas dalam lokal yang dideklarasikan di dalam metode kelas luar.

paket innerClass;

Kelas_luar kelas publik

{

// Sebuah metode instance dari kelas Outer_Class.

tampilan kekosongan publik ()

{

// Deklarasi kelas dalam lokal metode.

kelas Inner_Class

{

pesan batal publik(){

System.out.println("Ini adalah kelas dalam lokal!");

}

}

// Buat instance kelas dalam lokal metode dan panggil metode msg() menggunakan variabel referensi objek i.

Kelas_Dalam i = Kelas_Dalam baru();

i.msg();

}

public static void main(String[] args)

{

// Buat objek dari kelas luar Outer_Class.

Kelas_Luar o = Kelas_Luar baru();

o.display();

}

}

Output: Ini adalah kelas dalam lokal!

Dengan mempertimbangkan dasar-dasar kelas dalam Java, mari kita pahami mengapa kita membutuhkannya sejak awal.

Keunggulan Java Inner Class

Kelas dalam di Java membawa tiga utilitas signifikan ke tabel. Ini adalah sebagai berikut:

1. Karena kelas dalam Java dapat mengakses anggota data dan metode kelas luar/utama, termasuk pribadi, ini mewakili jenis hubungan tertentu.

2. Kelas dalam Java secara signifikan mengurangi pengkodean karena membutuhkan lebih sedikit untuk menulis.

3. Kelas dalam di Java secara logis mengelompokkan kelas dan antarmuka di satu tempat, sehingga meningkatkan keterbacaan kode dan membuatnya lebih mudah untuk dipelihara.

Menyimpulkan

Konsep kelas bersarang menyederhanakan dan menambahkan fleksibilitas untuk membuat kelas di mana saja dalam pemrograman Java. Dalam hal ini, kelas bersarang non-statis yang dikenal sebagai kelas dalam sangat berguna, seperti yang telah kita lihat dalam diskusi kita sejauh ini.

Kami ingin mengakhiri dengan menyatakan dua contoh di mana penggunaan kelas dalam tampaknya paling tepat. Pertama, kelas dalam Java sangat ideal ketika dua kelas memiliki hubungan dekat dan tidak dapat diakses oleh kelas lain. Dan kedua, kelas dalam adalah hal biasa dalam penanganan acara pemrograman Java GUI. Oleh karena itu, kelas dalam Java dapat digunakan dengan aman di mana pendengar dan komponen GUI mereka terlibat.

Ingin tahu di mana belajar bahasa Jawa?

Sertifikasi PG terkait pekerjaan upGrad dalam Rekayasa Perangkat Lunak adalah apa yang Anda cari!

Dirancang khusus untuk lulusan baru dan tahun terakhir, Sertifikasi PG terkait-Pekerjaan di Rekayasa Perangkat Lunak upGrad sangat cocok bagi mereka yang ingin belajar memprogram dan ditempatkan dalam peran perangkat lunak tingkat pemula. Program online 5 bulan ini akan mengajarkan keterampilan perangkat lunak terbaik seperti Java, JavaScript, HTML5, DSA, AWS, MERN, dan banyak lagi!

Sorotan Program:

  • Spesialisasi dalam MERN Stack/Cloud-Native
  • 500+ jam pembelajaran online
  • 350+ jam pelatihan langsung
  • 50+ sesi langsung
  • Lima proyek industri
  • Jaringan dengan pakar industri
  • Forum tanya jawab dengan rekan sejawat dan pakar industri
  • Dukungan pembelajaran dari asisten pengajar dan mentor industri

Daftar hari ini untuk belajar dari yang terbaik di industri ini!

Apa perbedaan antara kelas dalam dan subkelas?

Kelas dalam adalah kelas yang bersarang atau didefinisikan di dalam kelas lain. Di sisi lain, subclass adalah kelas yang diturunkan dari kelas lain. Selain itu, sementara kelas dalam hanya dapat diakses dengan menggunakan referensi kelas luar di mana ia bersarang, subkelas dapat diakses secara langsung kecuali jika subkelas mewarisi variabel pribadi.

Bisakah kita menulis kelas di dalam kelas di Jawa?

Ya, kita bisa mendefinisikan kelas di dalam kelas lain di Jawa. Kelas seperti itu dikenal sebagai kelas bersarang, dan memungkinkan kita untuk mengatur kelas secara logis di satu tempat, sehingga menciptakan kode yang lebih mudah dipelihara dan dibaca. Sebagai bagian dari kelas terlampirnya, kelas bersarang dapat dideklarasikan publik, privat, paket-pribadi, atau dilindungi.

Bisakah kelas dalam Java menjadi pribadi?

Ya, kelas dalam Java bisa menjadi pribadi. Tapi begitu kelas dalam dinyatakan pribadi, itu tidak dapat diakses dari objek yang berada di luar kelas. Kelas dalam dan luar memiliki akses ke variabel instans pribadi dan metode pribadi masing-masing. Selama kita berada di dalam kelas luar atau dalam, pengubah privat dan publik memiliki efek yang sama.