Local classes - Local classes are like local variables, specific to a block of code. Their visibility is only within the block of their declaration
Member classes - Member inner classes are just like other member methods and member variables and access to the member class is restricted, just like methods and variables.
Anonymous classes - Anonymous classes have no name, you cannot even provide a constructor.