Объявление класса состоит из заголовка и тела класса.
Заголовок класса: Вначале указываются модификаторы класса. Допустимым является public, либо его отсутствие - доступ по умолчанию. Класс может быть объявлен как final. В этом случае не допускается создание наследников такого класса. На своей ветке наследования он является последним. Класс String и классы-
обертки, например, являются final-классами. После списка модификаторов указывается ключевое слово class, а затем имя класса - корректный Java-идентификатор. Указанный идентификатор становится простым именем класса. Полное составное имя класса строится из полного составного имени пакета, в котором он объявлен (если это не безымянный пакет), и простого имени класса, разделенных точкой. Область видимости класса, где он может быть доступен по своему простому имени - его пакет.
Далее заголовок может содержать ключевое слово extends, после которого должно быть указано имя (простое или составное) доступного не-final класса. В этом случае объявляемый класс наследуется от указанного класса. Если выражение extends не применяется, то класс наследуется напрямую от Object. Выражение extends Object допускается и игнорируется.
Тело класса: Тело класса может содержать объявление элементов (members) класса:
• полей;
• методов;
• внутренних типов (классов и интерфейсов);
и остальных допустимых конструкций:
• конструкторов;
• инициализаторов;
• статических инициализаторов.