2012-03-09 10 views
6

Quiero entender lo que significa la palabra 'estática' se puede hacer en la cabecera del método '' writeNumbers ?:¿Cuál es el significado de 'estático' en un encabezado de método?

public class DisplayClass { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     writeNumbers(); 
    } 

    public static void writeNumbers() 
    { 
     int count; 
     for(count=1; count<=20; count++) 
     { 
      System.out.println(count); 
     } 
    } 
} 

Respuesta

20

El término static significa que el método está disponible a nivel de clase, y por lo tanto no requiere que un objeto se crea una instancia antes de que se llama.

Debido writeNumbers estaba siendo llamado de un método que era en sí misma static sólo puede llamar a otros métodos estáticos, a menos que la primera instancia un nuevo objeto de DisplayClass usando algo como:

DisplayClass displayClass = new DisplayClass(); 

una sola vez este objeto ha sido instanciado podría llamarse a métodos no estáticos, por ejemplo:

displayClass.nonStaticMethod(); 
2

Desde el Oracle Java Tutorial textualmente:

El lenguaje de programación Java soporta los métodos estáticos, así como variables estáticas Los métodos estáticos, que tienen el modificador estático en sus declaraciones, se deben invocar con el nombre de clase, sin la necesidad de crear una instancia de la clase ...

No es necesario crear una instancia de una clase usa el método en cuestión. Le darías a ese método los parámetros apropiados y devolvería algo apropiado.

0

estático le dice al compilador que el método no está asociado con los miembros de instancias de la clase en la que se declara. Es decir, el método está asociado a la clase en lugar de a una instancia de la clase.

1

Los elementos estáticos pertenecen a la clase en lugar de al objeto.

así static method pertenece a la clase que se puede acceder directamente como a continuación.

public class MyClass{ 
public static void display(){ 
} 
.. 
.. 
} 
. 
. 
.. 
MyClass.display(); 
2

Para aclarar la respuesta de Crollster, quería señalar 2 cosas.

Primero:

Por nivel de clase, que significa que se puede acceder a él escribiendo "DisplayClass.writeNumbers()", por su ejemplo, en la cuestión, sin tener la necesidad de usar "nuevos displayclass();" .

Segundo:

Por nivel de clase, sino que también significa que la base de código no se copia en cualquier instancia por lo que recibe un menor consumo de memoria.

Cuestiones relacionadas