La instancia de clase llama al método estático (Java)

Prólogo

La primera vez que vi que puede llamar a métodos estáticos a través de instancias de clase en Java. Por supuesto, esto no se recomienda para evitar problemas inesperados. Hablaré de ello más tarde, pero llamar a métodos estáticos a través de instancias de clase en C # no se compila. Pasará, haga una nota aquí.

La instancia de clase llama al método estático

Primero, veamos un ejemplo simple para explicar por qué los métodos estáticos no pueden llamarse a través de instancias de clase. Sabemos que un objeto no desinstalado arrojará una excepción de puntero nulo al llamar al método o campo correspondiente, como el siguiente:

public  static  void main (String [] args) { 
    Objeto o = nulo ; 
    System.out.println (o.toString ()); 
}

Sin embargo, si se aplica a un método estático, se producirán problemas inesperados, como el siguiente ejemplo:

 jugador de clase pública {
     public  static  final String type = "Human" ; 

    int int privado  ; public static String getType () {
         tipo de retorno ; 
    } public int getAge () {
         return age; 
    } 
}

     

     
public  static  void main (String [] args) { 
    Jugador jugador = nulo ; 
    System.out.println (player.getType ()); 
    System.out.println (player.getAge ()); 
}

El objeto anterior no se instancia, pero el método estático de llamar a su variable no arrojará una excepción e imprimirá el resultado. Por supuesto, la respuesta también es muy simple, porque el método estático pertenece a la clase en lugar de la instancia de clase, por lo que la llamada anterior  player.getType ( )  Básicamente, se llama a  Player.getType ()  . 

Resumen

La posibilidad de llamar a métodos estáticos a través de instancias de clase en Java puede ser un defecto en el diseño original. Por supuesto, esto es solo mi especulación personal. No lo he estudiado demasiado. Veo que no se compila y puede ejecutarse normalmente. Creo que esto Hay una gran diferencia con C #, por lo que se resume el registro.

Supongo que te gusta

Origin www.cnblogs.com/CreateMyself/p/12676723.html
Recomendado
Clasificación