1. File class
Test is a file class.
class Test { static void method() { //... }}public class Driver { public static void main(String[] args) { Test.method(); }}
2. Internal class
class OuterClass { int outerData; static int s_outerData; void outerMethod() {} static void s_outerMethod() {} class InnerClass { int innerData; void innerMethod() { innerData = outerData; innerData = s_outerData; outerMethod(); s_outerMethod(); } }}
3. Local class
A local class is a class defined inside a method.
class A { int data; void method() { class B { int local_data; void local_method() { System.out.println("I'm the method in the local class."); } } }}
4. Anonymous class
An anonymous class is also called an anonymous internal class. It is actually an unknown local class.
class Test { void method(new Object() { public String toString() { System.out.println("Hi, I'm an anonymous class."); } });}