logo

Método estático en Java con ejemplos

La palabra clave estática se utiliza para construir métodos que existirán independientemente de si se generan o no instancias de la clase. Cualquier método que utilice la palabra clave estática se denomina método estático.

Características del método estático:



  • Un método estático en Java es un método que forma parte de una clase en lugar de una instancia de esa clase.
  • Cada instancia de una clase tiene acceso al método.
  • Los métodos estáticos tienen acceso a variables de clase (variables estáticas) sin utilizar el objeto de la clase (instancia).
  • Sólo se puede acceder a datos estáticos mediante un método estático. No puede acceder a datos que no sean estáticos (variables de instancia).
  • Tanto en los métodos estáticos como en los no estáticos, se puede acceder directamente a los métodos estáticos.

Sintaxis para declarar el método estático:

Access_modifier static void methodName() { // Method body. }>

El nombre de la clase se puede utilizar para invocar o acceder a métodos estáticos.

Sintaxis para llamar a un método estático:



className.methodName();>

Ejemplo 1: el método estático no tiene acceso a la variable de instancia

La JVM ejecuta primero el método estático, seguido de la creación de instancias de clase. Porque no se puede acceder a ningún objeto cuando se utiliza el método estático. Un método estático no tiene acceso a variables de instancia. Como resultado, un método estático no puede acceder a la variable de instancia de una clase.

ordenar una matriz java

Java






creación de tabla de oráculo
// Java program to demonstrate that> // The static method does not have> // access to the instance variable> > import> java.io.*;> > public> class> GFG {> >// static variable> >static> int> a =>40>;> > >// instance variable> >int> b =>50>;> > >void> simpleDisplay()> >{> >System.out.println(a);> >System.out.println(b);> >}> > >// Declaration of a static method.> >static> void> staticDisplay()> >{> >System.out.println(a);> >}> > >// main method> >public> static> void> main(String[] args)> >{> >GFG obj =>new> GFG();> >obj.simpleDisplay();> > >// Calling static method.> >staticDisplay();> >}> }>

amisha patel
>

>

Producción

40 50 40>

Ejemplo 2: tanto en los métodos estáticos como en los no estáticos, se accede directamente a los métodos estáticos.

Java




java objetivo

// Java program to demonstrate that> // In both static and non-static methods,> // static methods are directly accessed.> > import> java.io.*;> > public> class> StaticExample {> > >static> int> num =>100>;> >static> String str =>'GeeksForGeeks'>;> > >// This is Static method> >static> void> display()> >{> >System.out.println(>'static number is '> + num);> >System.out.println(>'static string is '> + str);> >}> > >// non-static method> >void> nonstatic()> >{> >// our static method can accessed> >// in non static method> >display();> >}> > >// main method> >public> static> void> main(String args[])> >{> >StaticExample obj =>new> StaticExample();> > >// This is object to call non static function> >obj.nonstatic();> > >// static method can called> >// directly without an object> >display();> >}> }>

>

>

Producción

¿Qué es el huevo de Pascua de Android?
static number is 100 static string is GeeksForGeeks static number is 100 static string is GeeksForGeeks>

¿Por qué utilizar métodos estáticos?

  1. Para acceder y cambiar variables estáticas y otros métodos estáticos no basados ​​en objetos.
  2. Las clases de utilidad y asistencia frecuentemente emplean métodos estáticos.

Restricciones en métodos estáticos:

  1. Los miembros de datos no estáticos o los métodos no estáticos no pueden ser utilizados por métodos estáticos, y los métodos estáticos no pueden llamar a métodos no estáticos directamente.
  2. En un entorno estático, no se permite el uso de this y super.

Por qué es el método principal en Java ¿estático?

Es porque no es necesario llamar a un método estático del objeto. Si fuera una función no estática, JVM primero construiría un objeto antes de llamar al método main(), lo que resultaría en una dificultad adicional de asignación de memoria.

Diferencia entre el método estático y el método de instancia

Métodos de instancia

Métodos estáticos

Requiere un objeto de la clase. No requiere un objeto de la clase.
Puede acceder a todos los atributos de una clase. Sólo puede acceder al atributo estático de una clase.
Solo se puede acceder a los métodos utilizando la referencia de objeto. Solo se accede al método por nombre de clase.
Sintaxis: Objref.nombremétodo() Sintaxis: nombredeclase.nombredemétodo()
Es un ejemplo de programación de paso por valor. Es un ejemplo de programación paso por referencia.