Questão

5 respostas
B

Which option most fully describes will happen when you attempt to compile and run the following 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);    
	}
}
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

5 Respostas

S

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

B

arghhh
essa foi muito facil!!

F

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()

B

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

M

é… 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…

Criado 29 de julho de 2004
Ultima resposta 30 de jul. de 2004
Respostas 5
Participantes 4