The Java Thread framework allows an activity to be initiated in a new thread, causing it to proceed asynchronously. Nearly any kind of activity can be performed in a Java Thread . Here is a class describing objects that print a message to a java.awt.TextArea when their run method is invoked. The methods part of a box is omitted when there is no reason to list any of the methods. Even when present, qualifiers, arguments, return types, constructors, inherited methods, and unreferenced methods are often omitted to reduce clutter.
Dashed boxes represent interfaces.
They also are omitted when there is no reason to show them. Lines beginning with diamonds denote unique containment, as explained in Chapter 2. This is ugly but useful in highlighting concurrency issues that revolve around state representations. For additional rationale and conventions, see the Draft coding standard . For both clarity and economy of presentation, code is sometimes packed more or less tightly into lines than would otherwise be stylistically desirable.