Questão

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]

  1. Compilation and output of the value 0
  2. Compile time error because i has not been initialized
  3. Compilation and output of null
  4. Compile time error

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

arghhh
essa foi muito facil!!

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…