class Sub {
static int y;
public static void foo() {
this.y = 10;
}
}
entiendo que this
representa el objeto de invocar el método y que los métodos estáticos no están vinculados a ningún objeto. Pero en el caso mencionado anteriormente, la variable y también es estática.Por qué no podemos utilizar 'esto' palabra clave en un método estático
Si podemos invocar el método estático en el objeto de clase, ¿por qué no podemos permitir que los métodos estáticos establezcan las variables estáticas de la clase?
¿Cuál es el propósito de esta restricción adicional?
Me doy cuenta de que esta es una pregunta antigua, pero quiero +1 como un punto bastante válido. Aunque para los campos, la respuesta es simple (deje el calificador fuera), para las clases internas estáticas se vuelve relevante, y también es relevante cuando lo que quiere es una referencia a la instancia de tiempo de ejecución de la clase misma. Por ejemplo, puedo escribir 'MyClass.class' para obtener la clase singleton, pero solo 'clase' por sí sola no es válida y no hay una solución similar. Esto lleva a que el nombre de clase se repita potencialmente a través de la unidad que no es muy SECA. –