nN el otro te recomiendo que separes las clases.Un archivo java por cada clase. Asi va a ser mas legible para vos.
Por otro lado te voy a resumir la explicacion de como esta funcionando el this. Aparte de permitirte acceder a los atributos y metodos, tambien te permite definir la clase padre/owner. Es decir quien esta llamando a esa clase.
Código:
class Peeler{
static Apple peel(Apple apple){
return apple;
}
}
Código:
class Apple{
Apple getPeeled(){
return Peeler.peel(this);
}
}
La clase Peeler define al metodo peel. Este metodo recibe como argumento una instanciacion de la clase Apple. Cuando en la clase apple llamas a peel, con el argumento this le estas diciendo que esa es la clase padre/owner/o quien la invoca.
Esa es otra funcionalidad que posee el this. La de marcar a la clase como la responsable de la invocacion de la otra clase.
Esta es una explicacion a lo general. Fijate en la pagina de SUN al respecto.