implements = implementa...lo usi quando crei una classe che deve implementare i metodi di una interfaccia.
es:
codice:
public class ciao implements Nome_interfaccia
{
...
}
this = lo usi in casi tipo quando fai un passaggio di parametri con variabil che hanno lo stesso nome.
es:
codice:
public void metodo1()
{
  public int a,b;
  ...
  metodo2(a,b);
}

public void metodo2(int a, int b)
{
  public int a,b;

  this.a = a;
  this.b = b;
  ...
}
static = è la parola chiave usata per indicare qualcosa (di solito metodi) che non hanno bisogno di un oggetto per essere invocati. Se dichiari delle variabili fuori da un metodo static e poi le usi in un metodo di questo tipo le devi dichiarare anchesse static, se invece le dichiari all'interno del metodo static non serve specificarlo.
es:
codice:
public static void metodo1();
{
  public int a;
  a = ....;
}
oppure in modo equivalente a seconda delle esigenze
codice:
public static int a;
public static void metodo1();
{
  a = ....;
}
Per chiamare un metodo static nella stessa classe in cui è implementato basta usare solo il nome del motodo
codice:
metodo1();
altrimenti dall'interno di un'altra classe devi fare
codice:
Ciao.metodo1(); //supponendo che Ciao sia la classe in cui è implementato "metodo1"
Ciao.