come regola generale che ogni classe (ed interfaccia) deve essere definita in un file che deve avere il medesimo nome della classe

eccezioni:


sintassi:
class Enclosing
{

...

class Inner
{
...
}

static class InnerStatic
{
...
}

interface InnerInterface
{
...
}

public void metod(...)
{
...
class LocalClass
{
...
}
}
}


esempio: utilizzo Inner class
class Outer_Demo
{

int num;

// definizione inner class
private class Inner_Demo
{
public void print()
{
System.out.println("Questa é una inner class");
}
}


// acesso alla inner dal metodo
void display_Inner()
{
Inner_Demo inner = new Inner_Demo(); creo oggetto
inner.print(); uso metodo print
}
}


classe con main
public class My_class
{
public static void main(String args[])
{
// creo oggetto classe Outer_Demo
Outer_Demo outer = new Outer_Demo();


// uso del metodo display_Inner
outer.display_Inner();
}
}