Rumah >Java >javaTutorial >Kelas Bersarang di Jawa

Kelas Bersarang di Jawa

WBOY
WBOYasal
2024-08-30 16:00:19742semak imbas

Kelas bersarang merujuk kepada kelas yang berada di dalam kelas lain. Java membolehkan kami membuat kelas bersarang dalam java. Kelas bersarang ialah salah satu daripada ahli kelas luarnya. Ia juga boleh diisytiharkan sebagai awam, peribadi, dilindungi atau lalai. Kelas bersarang mempunyai akses kepada ahli kelas luar yang lain, manakala sebaliknya tidak boleh dilakukan. Ini bermakna kelas luar tidak mempunyai akses kepada ahli kelas bersarang kerana kelas bersarang ialah ahli kelas luar yang melampirkannya, jadi titik (.) digunakan untuk mengakses kelas bersarang & ahlinya. Kelas bersarang tidak mempunyai sebarang kata kunci statik.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Kategori Kelas Bersarang di Jawa

Kelas bersarang dibahagikan kepada dua kategori:

  1. Kelas Bersarang Statik: Kami merujuk kepada kelas bersarang yang diisytiharkan dengan kata kunci "statik" sebagai kelas bersarang statik. Kelas Static Nested boleh diakses dengan merujuk kelas luar. Kelas bersarang, yang mempunyai kelas statik, tidak boleh mengakses pembolehubah & kaedah bukan statik kelas luar.
  2. Kelas Dalam: Kelas bersarang bukan statik ialah kelas dalam yang tidak diisytiharkan secara statik. Tiada kelas bersarang statik akan mempunyai akses kepada semua pembolehubah & kaedah statik & bukan statik walaupun ia diisytiharkan peribadi. Inner class pun ada dua jenis.
  • Kelas dalaman tempatan
  • Kelas dalaman tanpa nama

Sintaks:

Dalam sintaks di bawah, OuterClass mempunyai kelas dalam InnerClass yang dikenali sebagai kelas Nested.

//Outer class
class OuterClass {
//Inner class as a nested class
class InnerClass {
....
}
}

Penggunaan Kelas Bersarang dalam Java

Dalam dunia pengaturcaraan, kelas Nested memainkan peranan penting, seperti yang diberikan di bawah:

  • Persarang kelas adalah seperti mengumpulkan kelas dalam skop kelas yang lain. Anda tidak boleh menggunakan kelas bersarang di tempat lain.
  • Membawa kepada Kebolehbacaan & Kebolehselenggaraan: Penyarang kelas memberikan kebolehbacaan kod yang lebih baik dan lebih mudah untuk diselenggara kerana ia tidak menjejaskan kelas lain.
  • Kod Dikurangkan: Menggunakan kelas bersarang mengurangkan baris kod, membawa kepada pengoptimuman.
  • Meningkatkan Enkapsulasi: Dalam kelas bersarang, kelas dalam mempunyai akses kepada ahli kelas luar tertutupnya. Pada masa yang sama, kelas luar tidak boleh mengakses ahli kelas dalam secara langsung. Selain itu, kelas dalaman tidak kelihatan atau boleh diakses daripada program luar.

Contoh Kelas Bersarang di Java

Diberikan di bawah adalah contoh Nested Class dalam Java:

Contoh #1

Dalam contoh ini, anda boleh melihat instantiasi kelas dalam dengan merujuk kelas luar.

Kod:

// Outer class which contains nested class
class Engine{
static double fuel = 20.0;
//static nested class
static class Ignition{
void showFuelSpend() {
System.out.println("Fuel Spend = " + fuel + " Ltrs");
}
}
}
//class uses nested class inside it
public class NestedClassExample{
public static void main(String[] args) {
//creating object of the nested class by referencing parent class
Engine.Ignition engIgnitObj = new Engine.Ignition();
//calling method of the nested class
engIgnitObj.showFuelSpend();
}
<u>}</u>

Output:

Kelas Bersarang di Jawa

Contoh #2

Dalam contoh ini, kita dapat melihat bagaimana kelas dalaman boleh dijadikan instantiated. Anda memerlukan contoh kelas dalam untuk membuat contoh kelas dalam. Selepas mencipta contoh kelas Luar, anda boleh membuat tika kelas bersarang di dalamnya.

Kod:

//Outer class
class Volume{
double x, y, z;
Volume(double x, double y, double z) {
this.x = x;
this.y = y;
this.z = z;
}
// Nested inner class
class Measurement{
//method to calculate the total area
void totalArea(double i, double j) {
System.out.println("\nArea for the provided container is " + (i * j));
}
//method to calculate the total volume
void totalVolume(double i, double j, double k) {
System.out.println("\nVolume for the provided container is " + (i * j * k));
}
}
}
public class NestedClassCalcExample {
public static void main(String[] args) {
//passing here all the parameter to constructor
Volume volObj = new Volume(30.0, 25, 18.0);
Volume.Measurement volMeasureObj = volObj.new Measurement();
// calculating total area
volMeasureObj.totalArea(volObj.x, volObj.y);
// calculating total volume
volMeasureObj.totalVolume(volObj.x, volObj.y, volObj.z);
}
}

Output:

Kelas Bersarang di Jawa

Contoh #3

Contoh ini menunjukkan cara instantiasi objek kelas bersarang berlaku dalam tika kelas luar.

Kod:

//outer class
class Electronic{
String circuitName,
String circuitType;
double circuitCost;
//constructor of outer class
Electronic(String name, String type, double cost) {
this.circuitName = name;
this.circuitType = type;
this.circuitCost = cost;
}
String getCircuitName() {
return this.circuitName;
}
//nested class
class Circuit{
String circuitType;
double circuitCost;
void setCircuitType() {
this.circuitType = "Transistor";
this.circuitCost = 430.0;
}
//get circuit type using this method
String getCircuitType(){
return this.circuitType;
}
//get circuit cost using this method
double getCircuitCost(){
return this.circuitCost;
}
}
}
public class Product{
public static void main(String[] args) {
Electronic elObj = new Electronic("Amplifier", "Integrated", 375.0);
Electronic.Circuit circuit = elObj.new Circuit();
//printing here the values before reset it
System.out.println("\nCircuit Name : " + elObj.circuitName);
System.out.println("\nCircuit Type : " + elObj.circuitType);
System.out.println("\nCircuit Cost : " + elObj.circuitCost);
//resetting some value
circuit.setCircuitType();
//printing here the values before reset it
System.out.println("\n\nCircuit Name : " + elObj.getCircuitName());
System.out.println("\nCircuit Type : " + circuit.getCircuitType());
System.out.println("\nCircuit Cost : " + circuit.getCircuitCost());
}
}

Output:

Kelas Bersarang di Jawa

Kesimpulan

Dalam artikel yang diberikan di atas, kami menyemak cara kelas Nested adalah penting dalam java. Ia adalah amalan yang baik untuk menggunakan sarang kelas. Artikel di atas juga menerangkan kebolehgunaan kelas Nested.

Atas ialah kandungan terperinci Kelas Bersarang di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Kelas Pembungkus di JawaArtikel seterusnya:Kelas Pembungkus di Jawa