Java leidžia klasę apibrėžti kitoje klasėje. Šie vadinami Įdėtos klasės . Klasės gali būti statinės, apie kurias dauguma kūrėjų žino, todėl nuo šiol kai kurios klasės gali būti statinės Java. Java palaiko Statiniai egzempliorių kintamieji , Statiniai metodai , Statinis blokas ir statinės klasės. Klasė, kurioje yra apibrėžta įdėtoji klasė, yra žinoma kaip Išorinė klasė . Skirtingai nuo aukščiausio lygio klasių, Įdėtos klasės gali būti statinės . Nestatinės įdėtos klasės taip pat žinomos kaip Vidinės klasės .
Pastaba: Aukščiausio lygio klasė „Java“ negali būti statinė. Norėdami sukurti statinę klasę, turime sukurti įdėtą klasę ir padaryti ją statišką.
Vidinės klasės egzempliorius negali būti sukurtas be išorinės klasės egzemplioriaus. Todėl vidinės klasės egzempliorius gali pasiekti visus savo išorinės klasės narius, nenaudodamas nuorodos į išorinės klasės egzempliorių. Dėl šios priežasties vidinės klasės gali padėti padaryti programas paprastas ir glaustas.
Kylie Jenner amžius
Prisiminti: Statinėje klasėje galime lengvai kurti objektus.
Statinių ir nestatinių įdėtųjų klasių skirtumai
Toliau pateikiami pagrindiniai statinių įdėtųjų klasių ir vidinių klasių skirtumai.
- Statinės įdėtos klasės egzemplioriai gali būti generuojami nekeičiant išorinės klasės.
- Vidinės klasės gali pasiekti tiek statinius, tiek nestatinius išorinės klasės narius. Statinė klasė gali pasiekti tik statinius išorinės klasės narius.
Pavyzdys apie Statinės ir nestatinės įdėtos klasės
Žemiau pateikiamas aukščiau minėtos temos įgyvendinimas:
abėcėlė į skaičius
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();> > }> }> |
>
string concat java
>Išvestis
Message from nested static class: GeeksForGeeks Message from non-static nested class: GeeksForGeeks Message from non-static nested class: GeeksForGeeks>