Local classes have different coverage rules. From JLS, section 6.3 :
"The scope of a local declaration of a class enclosed in a block (§14.2) is the rest of the directly closing block, including its own class declaration."
In the first example, you call the constructor of the Inner class in front of the scope of this inner class, so it is illegal.
TO illustrate this in your code:
void outerMethod() {
class Inner {
void innerMethod() {
System.out.println("inner class method...");
}
}
}