Classi interne OOP in Java Prima Parte

java-logo

Una classe interna è una classe dichiarata all’interno di un’altra classe.Una cosa molto interessante è che i metodi della classe interna possono accedere direttamente ai membri della classe che la contiene

public class TestIn {

class innerClass {

private String nome;

public void setNome(String n) {
this.nome = n;
}
public String getNome(){
return this.nome;
}
public void Stampa(String s) {
System.out.println(s);
}
}

public static void main(String[] args) {
TestIn outClass = new TestIn();
innerClass inner = outClass.new innerClass();
inner.setNome(“Pippo”);

inner.Stampa(inner.getNome());

}

}

Come potete notare dal codice la nostra classe interna utilizza i metodi  setNome e getNome(entrambi metodi appartenenti alla classe “contenitore”. La parola chiave this (usata in this.nome) permette di riferirsi all’istanza corrente all’interno dei metodi  esso è sottinteso per default quando ci si riferisce ad attributi o metodi della classe corrente, quindi in questo caso potevo anche non utilizzarlo.

Overloading

Java permette l’overloading dei metodi, ossia è possibile avere più metodi con lo stesso nome Il compilatore decide staticamente quale versione eseguire in base ai tipi dei parametri .I metodi overloaded devono differire per tipo e/o numero dei parametri d’ingresso.

public class TestIn {
public void metodo(){
System.out.println(“Metodo senza parametri”);
}
public void metodo(String para){
System.out.println(“Metodo con un parametro “+para);

}
public void metodo(Integer a, Integer b){
System.out.println(“Metodo con 2 parametri “+a+” “+b);

}

public static void main(String[] args) {
TestIn test=new TestIn();
test.metodo();//metodo senza param
test.metodo(“ciao”);//metodo con un param
test.metodo(5, 6);//metodo con 2 param

}

}