Java ļauj definēt klasi citā klasē. Tos sauc Ligzdotas klases . Klases var būt statiskas, par ko lielākā daļa izstrādātāju zina, un turpmāk dažas klases Java var padarīt statiskas. Java atbalsta Statiskie gadījumu mainīgie , Statiskās metodes , Statiskais bloks un Statiskās klases. Klase, kurā ir definēta ligzdotā klase, ir pazīstama kā Ārējā klase . Atšķirībā no augstākā līmeņa nodarbībām, Ligzdotas klases var būt statiskas . Nestatiskās ligzdotās klases ir zināmas arī kā Iekšējās klases .
Piezīme: Java augstākā līmeņa klase nevar būt statiska, lai izveidotu statisku klasi, mums ir jāizveido ligzdotā klase un pēc tam tā jāpadara statiska.
Iekšējās klases gadījumu nevar izveidot bez ārējās klases instances. Tāpēc iekšējās klases instance var piekļūt visiem savas ārējās klases dalībniekiem, neizmantojot atsauci uz ārējās klases gadījumu. Šī iemesla dēļ iekšējās klases var palīdzēt padarīt programmas vienkāršas un kodolīgas.
Atcerieties: Statiskajā klasē mēs varam viegli izveidot objektus.
string.contains java
Atšķirības starp statiskām un nestatiskām ligzdotām klasēm
Tālāk ir norādītas galvenās atšķirības starp statiskām ligzdotām klasēm un iekšējām klasēm.
- Statisku ligzdotu klasi var izveidot, neizveidojot tās ārējo klasi.
- Iekšējās klases var piekļūt gan statiskiem, gan nestatiskiem ārējās klases locekļiem. Statiskā klase var piekļūt tikai ārējās klases statiskajiem dalībniekiem.
Piemērs no Statiskas un nestatiskas ligzdotas klases
Zemāk ir aprakstīta iepriekš minētās tēmas īstenošana:
kā iegūt iPhone emocijzīmes operētājsistēmā Android
Java
vērsis vs bullis
// 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();> > }> }> |
>
ssh pilna forma
>Izvade
Message from nested static class: GeeksForGeeks Message from non-static nested class: GeeksForGeeks Message from non-static nested class: GeeksForGeeks>