Dúvida ref. acesso à método não-static

No site www.examulator.com tinha o seguinte código:

public class Ref{
	public static void main(String argv[]){
		Ref r = new Ref();
		r.amethod(r);
    }
	
    public void amethod(Ref r){
		int i=99;
		multi(r);
		System.out.println(i);
    }
	
    public void multi(Ref r){
		r.i = r.i*2;
    }
}

Dentre as opções que tinham de resposta a correta era
error at compile time. Até ai tudo bem, mas a explicação do site era que o método multi não iria conseguir acessar a varável i. Está certo também, mas antes desse erro não daria erro por causa do acesso a um método não static (amethod) a paritri de um static(main)? Eu fiquei curioso pois entrei no site e onde estou não tem como compilar um program para ver o que vai acontecer.

C:>javac Ref.java
Ref.java:12: cannot resolve symbol
symbol : variable i
location: class Ref
r.i = r.i2;
^
Ref.java:12: cannot resolve symbol
symbol : variable i
location: class Ref
r.i = r.i
2;
^
2 errors

O erro que vc questionou nao acontece pq uma instancia da classe foi criada para acessar o metodo:

Ref r = new Ref();
r.amethod(r);

Se a chamada fosse apenas

amethod(new Ref());

ai sim daria erro, pois o metodo “amethod” nao eh static e nao estaria atrelado a alguma instancia.

Rafael

Entendi

Obrigado