Inhoudsopgave
Er zijn momenten waarop onze applicatie grotere dimensies krijgt, zowel qua omvang als complexiteit, vooral als we werken in een a evenement georiënteerd, daarom kunnen we in plaats van klassen apart te bouwen, geneste klassen maken.De geneste klassen Ze stellen ons in staat om de ene klasse binnen de andere te definiëren, op deze manier hebben we toegang tot de informatie van de klasse die deze bevat, hiermee kunnen we op een eenvoudigere manier aan de vereisten voldoen door geen onafhankelijke structuren te hoeven bouwen.
Geneste klassenEEN geneste klasse is een klasse gedefinieerd binnen het bereik of bereik van een andere klasse, dat wil zeggen, het is binnen de klasse die het gaat bevatten, dit betekent dat in plaats van dat je binnen de binnenste klasse een object van de buitenste klasse moet instantiëren om zijn attributen te gebruiken en methoden kunnen we het direct doen sinds is binnen uw bereik.
We moeten oppassen dit niet te verwarren met afzonderlijke klassen binnen hetzelfde bestand, aangezien het een totaal ander concept is, in dit geval hebben we het over de ene klasse in de andere en niet dat ze het bestand delen, laten we eens kijken naar het verschil tussen beide definities.
1- EEN geneste klasse wordt gecompileerd in de klasse die het bevat, dit genereert een bestand .klas met een combinatie van stijlnamen ClassExternal $ ClassNested.class, als we het voorbeeld in de afbeelding volgen, zou de naam zijn Test $ Geneste.klasse.
2- EEN geneste klasse U kunt de attributen en methoden van de klasse die het bevat gebruiken en ernaar verwijzen zonder dat u een nieuwe instantie hoeft te maken, hierdoor kunnen we de inhoud van ons programma een beetje vereenvoudigen, vooral wanneer u werkt met evenement oriëntatie, laten we in de volgende afbeelding zien hoe dit wordt uitgedrukt:
4- Ondanks dat het geneste klassen zijn, kunnen dit instanties zijn van andere klassen dan de klassen die ze bevatten, hiervoor kun je het volgende formulier gebruiken:
ExternalClass.NestedClassNestedClassObject = ExternalClassObject.newNested Class ();
In het geval dat onze geneste klasse van het type is statisch we moeten dan het volgende formulier gebruiken:
Externe klasse. NestedClass nestedClassObject = nieuwe OuterClass.NestedClass ();
Hiermee sluiten we deze tutorial af, we hebben gezien hoe we kunnen genereren geneste klassen en de syntaxis die hoort bij dit kenmerk van de taal, het nut van deze manier van werken is dat we afhankelijke klassen kunnen combineren in een enkele grote klasse, hiermee verminderen we het aantal bestanden en ook de broncode, hiermee hebben we meer controle over onze applicatie en we maken het leven van ons ontwikkelingsteam gemakkelijker door alles in dezelfde klasse te hebben.