Which option most fully describes will happen when you attempt to compile and run the following code
[code]public class Rafael{
public static void main(String argv[]) {
Rafael m = new Rafael();
m.amethod();
}
public static void amethod(){
static int i;
System.out.println(i);
}
}[/code]
Compilation and output of the value 0
Compile time error because i has not been initialized
como eu disconfiava… dá erro de compilação. o modificador static é usado para definir atributos, métodos de classe, não pode ser usado dentro de métodos
e tb tem outro erro, ta chamando um metodo estatico por uma referencia, metodos estaticos devem ser chamados pelo nome da classe seguido por um ponto, no caso, Rafael.amethod()
e ai Felipe, blza?
discordo que seja um erro! pois como vc disse metodos estaticos apenas devem ser chamados pelo nome da classe… se fizer do jeito que ta (tirando o modificador static) funciona
é… não ha erro nenhum em chamar um metodo estático numa referencia, mas oq ocorre é q o método pertence a classe, e não a referencia, sendo assim nao tem acesso a this nem nada q não seja estatico… porém é sempre boa prática chamar metodos estaticos no nome da classe, pra enfatisar…