Java omogoča definiranje razreda znotraj drugega razreda. Ti se imenujejo Ugnezdeni razredi . Razredi so lahko statični, česar se zaveda večina razvijalcev, zato je mogoče nekatere razrede v Javi narediti statične. Java podpira Statične spremenljivke primerkov , Statične metode , Statični blok in statični razredi. Razred, v katerem je definiran ugnezdeni razred, je znan kot Zunanji razred . Za razliko od razredov na najvišji ravni, Ugnezdeni razredi so lahko statični . Nestatični ugnezdeni razredi so znani tudi kot Notranji razredi .
Opomba: Razred najvišje ravni v Javi ne more biti statičen; če želimo ustvariti statični razred, moramo ustvariti ugnezdeni razred in ga nato narediti statičnega.
Primerka notranjega razreda ni mogoče ustvariti brez primerka zunanjega razreda. Zato lahko primerek notranjega razreda dostopa do vseh članov svojega zunanjega razreda brez uporabe sklicevanja na primerek zunanjega razreda. Zaradi tega lahko notranji razredi pomagajo narediti programe preproste in jedrnate.
kakšna je velikost zaslona mojega monitorja
Ne pozabite: V statičnem razredu lahko enostavno ustvarjamo objekte.
Razlike med statičnimi in nestatičnimi ugnezdenimi razredi
Sledijo glavne razlike med statičnimi ugnezdenimi razredi in notranjimi razredi.
- Statični ugnezdeni razred je mogoče instancirati brez instanciranja njegovega zunanjega razreda.
- Notranji razredi lahko dostopajo do statičnih in nestatičnih članov zunanjega razreda. Statični razred lahko dostopa samo do statičnih članov zunanjega razreda.
Primer od Statični in nestatični ugnezdeni razredi
Spodaj je izvedba zgoraj omenjene teme:
Java
primerjava nizov java
// Java program to Demonstrate How to> // Implement Static and Non-static Classes> // Class 1> // Helper class> class> OuterClass {> > // Input string> > private> static> String msg => 'GeeksForGeeks'> ;> > // Static nested class> > public> static> class> NestedStaticClass {> > // Only static members of Outer class> > // is directly accessible in nested> > // static class> > public> void> printMessage()> > {> > // Try making 'message' a non-static> > // variable, there will be compiler error> > System.out.println(> > 'Message from nested static class: '> + msg);> > }> > }> > // Non-static nested class -> > // also called Inner class> > public> class> InnerClass {> > // Both static and non-static members> > // of Outer class are accessible in> > // this Inner class> > public> void> display()> > {> > // Print statement whenever this method is> > // called> > System.out.println(> > 'Message from non-static nested class: '> > + msg);> > }> > }> }> // Class 2> // Main class> class> GFG {> > // Main driver method> > public> static> void> main(String args[])> > {> > // Creating instance of nested Static class> > // inside main() method> > OuterClass.NestedStaticClass printer> > => new> OuterClass.NestedStaticClass();> > // Calling non-static method of nested> > // static class> > printer.printMessage();> > // Note: In order to create instance of Inner class> > // we need an Outer class instance> > // Creating Outer class instance for creating> > // non-static nested class> > OuterClass outer => new> OuterClass();> > OuterClass.InnerClass inner> > = outer.> new> InnerClass();> > // Calling non-static method of Inner class> > inner.display();> > // We can also combine above steps in one> > // step to create instance of Inner class> > OuterClass.InnerClass innerObject> > => new> OuterClass().> new> InnerClass();> > // Similarly calling inner class defined method> > innerObject.display();> > }> }> |
kaj je gb
>
np ničle
>Izhod
Message from nested static class: GeeksForGeeks Message from non-static nested class: GeeksForGeeks Message from non-static nested class: GeeksForGeeks>