This applies to subclasses of Applet, Servlet, Midlet, etc.
Why do they not need a main()? If I wanted to create a Craplet class that start
The executing environment of an applet (typically, your web browser) calls the applet methods at different points depending on what stage of rendering the it's reached. That provides a level of abstraction that's better suited for the web than a simple main() method. Further, launching arbitrary Java programs with main() methods would usually be considered something of a security risk.