Na primeira alternativa temos como afirmação verdadeira:
Correto, CAIXA
é uma atributo da instância, pois usamos a referência c para acessar o atributo. Se fosse estático a chamada seria:
Conta.CAIXA.getCodigo();
Entretanto CAIXA
não é necessariamente apenas um atributo da instancia, ela pode ser uma variável estática, prova disso é que como mostrado no código a seguir é possível alterar o valor retornado na classe estática utilizando a referencia presente na instancia:
class Caixa {
public static String codigo = "Meu código";
public static String getCodigo() {
System.out.println(codigo);
return codigo;
}
}
public class Conta {
public static Caixa CAIXA = new Caixa();
public static void main(String[] args) {
Conta c = new Conta();
c.CAIXA.getCodigo();
c.CAIXA.codigo = "Meu Novo Código!";
Conta.CAIXA.getCodigo();
Caixa.getCodigo();
}
}
Sendo assim a alternativa não está errada, mas poderia estar sendo mais clara em sua explicação, sobre o que se refere ao falar Se fosse estático
e ao usar o método Conta.CAIXA.getCodigo()
. Mas claro, se eu tiver entendido errado e estiver falando groselha, por favor me corrijam. xD