Pessoal, tenho um metodo de classe(static) e uma variável de instância em uma determinada classe. Já quebrei muita a cabeça mais não conseguir resolver este problema: Como posso usar esta variável de instância dentro desse metodo? Alguem conhece uma maneira prática de resolver este problema. Impreterivelmente este metodo tem que ser “static”
Problema com metodo static
5 Respostas
class X {
public static void y (X x) {
System.out.println (y.z);
}
public static void main (String[] args) {
X x = new X();
X.y (x);
}
private int z;
}
Será que tem outra maneira?
Se não me engano caso seja uma variavel de instância vc vai ter que criar um objeto da classe e usar um método (get) para pegar esse atributo. Ou então vc declara o atributo estático tbm. Mas dai ja é uma variavel de classe e nao de instancia.
não tem como declará-lo como estático porque está instância usa um metodo tb estático para poder criar esta instancia
Você não tem como acessar uma variável de instância em um método estático sem recebê-la por parâmetro.
Por que? porque um método estático não depende de uma instância para ser invocado, portanto não é obrigatória a existência de uma instância dessa classe, para que o método estático seja invocado. Portanto ele pode ser invocado em uma situação onde nenhuma instância da classe exista.
Por isso um método estático acessa variáveis estáticas, ou locais, porém nunca de instância (a não ser, novamente, que ela seja informada por parâmetro).