Puesto que no podemos utilizar this
dentro de un método estático, y tampoco podemos utilizar variables no estáticas, por qué es que podemos utilizar objetos, que utilizan las variables no estáticas dentro de los métodos estáticos?
Esto es lo que quiero decir:
public int x;
public int y;
public Account(int a, int b) {
this.x = a;
this.y = b;
}
public static void Swap(Account acc) {
int holder;
holder = acc.x;
acc.x = acc.y;
acc.y = holder;
}
Así que Swap()
va a funcionar, a pesar de que las variables dentro del objeto no son estáticas. No entiendo esta parte. Agradecería un poco de ayuda. TIA!
static
Los métodos pueden no acceso variable de instancia de la corriente ( this
ejemplo), ya que no existe tal ejemplo en su contexto.
Sin embargo, si pasa a ellos una referencia a una instancia, pueden acceder a cualquier variable de instancia y métodos visibles para ellos.
En caso de que su swap
ejemplo, si ese método no era static
, se podría haber eliminado el acc
argumento y operar sobre las variables de instancia de this
:
public void swap() {
int holder;
holder = this.x;
this.x = this.y;
this.y = holder;
}