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
Kelas bersarang dibahagikan kepada dua kategori:
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 { .... } }
Dalam dunia pengaturcaraan, kelas Nested memainkan peranan penting, seperti yang diberikan di bawah:
Diberikan di bawah adalah contoh Nested Class dalam Java:
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:
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:
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:
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!