Innerlijke klasse in Java betekent een ene klasse die lid is van een andere klasse. In , er zijn verschillende soorten innerlijke klassen. Dit artikel helpt je bij het ontrafelen van al deze lessen. Volgende aanwijzingen worden in detail besproken,
- Geneste innerlijke klasse
- Methode Lokale innerlijke klassen
- Anonieme innerlijke klassen
- Statische geneste klassen
Dus laten we aan de slag gaan met dit Inner Class In Java-artikel,
Innerlijke klasse in Java
Geneste innerlijke klasse
Deze klasse heeft toegang tot elke privéinstantie-waarde van de buitenste klasse. Het schrijven van een klasse binnen een andere klasse is ook toegestaan in Java. De klasse die erin wordt geschreven, is een bekende geneste klasse en de klasse die de binnenste klasse bevat, staat bekend als de buitenste klasse.
Syntaxis
klasse outerplace {class innerplace {}}
Voorbeeld
In het onderstaande voorbeeld maken we de innerlijke klasse privé en krijgen we toegang tot de klasse met behulp van method.
sessiebeheer in java webapplicatie
class Outer_place {int num private class Inner_place {public void print () {System.out.println ('It is an inner class')}} void display_Inner () {Inner_place inner = new Inner_place () inner.print ()}} public class My_class {public static void main (String args []) {Outer_place outer = nieuwe Outer_place () outer.display_Inner ()}}
Uitvoer
Hier is de uiterlijke plaats de buitenste klasse en de innerlijke plaats wordt de innerlijke klasse genoemd.
Verder gaan met dit Inner Class In Java-artikel,
Toegang tot privé-leden
Innerlijke klassen worden ook gebruikt om toegang te krijgen tot de privéleden van de klas. Stel dat er een klas is met privé-leden om er toegang toe te hebben. Schrijf nu een innerlijke klasse binnen de klas en krijg toegang tot de privé-leden via een methode binnen de innerlijke klasse.
Hier is het voorbeeld,
class Outer_place {private int num = 162 class Inner_place {public int getNum () {System.out.println ('Het is een getnum-methode van inner class:') return num}}} public class My_class {public static void main (String args []) {Outer_place outer = nieuwe Outer_place () Outer_place.Inner_place inner = outer.new Inner_place () System.out.println (inner.getNum ())}}
Uitvoer
Verder gaan,
Methode van lokale innerlijke klassen
In Java kunt u een klasse binnen de methode schrijven en die wordt het lokale type genoemd. Net als alle lokale variabelen is de reikwijdte van de innerlijke klasse beperkt binnen een methode.
Voorbeeld
Het volgende voorbeeld laat zien hoe een lokale binnenklasse van een methode wordt geïmplementeerd.
public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('method for inner classes' + num)}} MethodInner_place inner = new MethodInner_place () inner.print ( )} public static void main (String args []) {Outerplace outer = new Outerplace () outer.my_Method ()}}
Uitvoer
Verder gaan met dit Inner Class In Java-artikel,
Anonieme innerlijke klasse
Elke innerlijke klasse die wordt gedeclareerd zonder de klassenaam, wordt een anonieme innerlijke klasse genoemd. In het geval van anonieme innerlijke klassen, instantiëren en declareren we deze tegelijkertijd.
Elke keer dat we de methode van klasse of een interface willen overschrijven, gebruiken we deze klasse.
Syntaxis
AnonymousInner obj1 = nieuwe AnonymousInner () {openbare ongeldige methode () {}}
Voorbeeld
abstract class AnonymousInner {public abstract void mymethod ()} public class Outer_class {public static void main (String args []) {AnonymousInner inner = new AnonymousInner () {public void mymethod () {System.out.println ('voorbeeld van anoniem inner class ')}} inner.mymethod ()}}
Uitvoer
Verder gaan met dit Inner Class In Java-artikel,
Als argument van anonieme innerlijke klasse
Hierin, als een methode het object van de interface, van een abstracte klasse of de concrete klasse accepteert, kunnen we de interface implementeren, het object doorgeven aan de methode en de abstracte klasse uitbreiden.
Syntaxis
obj. method (new class () {public void do {}})
Voorbeeld
// interface interface Message {String greet ()} public class My_class {// object van interfacebericht wordt geaccepteerd door deze methode public void displayMessage (Message m) {System.out.println (m.greet () + ', voorbeeld van anonymous inner class as argument ')} public static void main (String args []) {// Instantiating van class My_class obj = new My_class () // Doorgeven van de anonieme inner class als argument obj.displayMessage (new Message () {public String greet () {return 'Hey'}})}}
Uitvoer
Verder gaan met dit Inner Class In Java-artikel,
Anonieme innerlijke klasse van een gespecificeerde subklasse
Broncode
klasse Demo {void show () {System.out.println ('ik zat in de showmethode van de klasse')}} klasse Flavor1Demo {statische demo d = nieuwe demo () {void show () {super.show () System. out.println ('i was present in Flavor1Demo class')}} public static void main (String [] args) {d.show ()}}
Uitvoer
Verder gaan met dit Inner Class In Java-artikel,
Anonieme innerlijke klasse als uitvoerder van gespecificeerd Koppel
Broncode
class Flavor2Demo {// class die Hello interface static implementeert Hallo h = nieuw Hallo () {public void show () {System.out.println ('i was present in anonymous class')}} public static void main (String [] args) {h.show ()}} interface Hallo {void show ()}
Uitvoer
Verder gaan met dit Inner Class In Java-artikel,
Statische geneste klassen
Deze klassen zijn technisch niet bekend als innerlijke klassen. Deze klassen zijn vergelijkbaar met het statische lid van de buitenste klasse. Een statische geneste klasse heeft geen toegang tot de variabelen en methoden van de buitenste klasse. We hoeven de buitenste klasse niet te instantiëren, deze is rechtstreeks toegankelijk via de statische leden.
Syntaxis
Klasse buitenste {Statische klasse nested_example {}}
Voorbeeld
public class Outer {statische class Nested_Example {public void my_method () {System.out.println ('It is the geneste klasse')}} public static void main (String args []) {Outer.Nested_Example genest = nieuw Outer.Nested_Example () genest.mijn_method ()}}
Uitvoer
Hiermee zijn we aan het einde gekomen van dit artikel. Als u meer wilt weten,bekijk de door Edureka, een vertrouwd online leerbedrijf. Edureka's Java J2EE- en SOA-trainings- en certificeringscursus is ontworpen om u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.
Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van dit artikel en we nemen zo snel mogelijk contact met u op.