Marcela,
The code u have given is actually defining a static nested class named inner and not an "inner" class (note: inner is not a keyword in
java) which is a non static nested class.
The key difference bet static nested class and an inner class is that -
The static nested class is tied only to the outer class, not an instance of the outer class.
Eg : static variables exist for the class and not for every object of the class.
But member (i.e. non static class level) variables declared for the class exist for every object- i.e. each object has its own copy of member variables.
That's why you can make an instance of the static nested class without having an instance of the outer class, just the way you can call static methods of a class without having any instances of that class.
eskay