logo

Clase estática en Java

Java permite definir una clase dentro de otra clase. estos se llaman Clases anidadas . Las clases pueden ser estáticas, algo que la mayoría de los desarrolladores conocen; de ahora en adelante, algunas clases pueden volverse estáticas en Java. Soportes de Java Variables de instancia estáticas , Métodos estáticos , Bloque estático y clases estáticas. La clase en la que se define la clase anidada se conoce como Clase exterior . A diferencia de las clases de alto nivel, Las clases anidadas pueden ser estáticas . Las clases anidadas no estáticas también se conocen como clases internas .

Nota: La clase de nivel superior no puede ser estática en Java, para crear una clase estática debemos crear una clase anidada y luego hacerla estática.



No se puede crear una instancia de una clase interna sin una instancia de la clase externa. Por lo tanto, una instancia de clase interna puede acceder a todos los miembros de su clase externa, sin utilizar una referencia a la instancia de clase externa. Por esta razón, las clases internas pueden ayudar a que los programas sean simples y concisos.

Recordar: En una clase estática, podemos crear objetos fácilmente.

bash para el bucle 1 al 10

Diferencias entre clases anidadas estáticas y no estáticas

Las siguientes son las principales diferencias entre las clases anidadas estáticas y las clases internas.



  1. Se puede crear una instancia de una clase anidada estática sin crear una instancia de su clase externa.
  2. Las clases internas pueden acceder a miembros tanto estáticos como no estáticos de la clase externa. Una clase estática sólo puede acceder a los miembros estáticos de la clase externa.

Ejemplo de Clases anidadas estáticas y no estáticas

A continuación se muestra la implementación del tema mencionado anteriormente:

lista de matrices ordenada

Java






formatear una fecha en 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();> >}> }>

>

número aleatorio en java
>

Producción

Message from nested static class: GeeksForGeeks Message from non-static nested class: GeeksForGeeks Message from non-static nested class: GeeksForGeeks>