| variable whose type is an abstract class | a class or an object or a primitive datum | giving the data type followed by the name of the variable | comment if it is non-obvious | as private as possible |   | variable declared as a non-primitive data type | Variables and Data Types | bold = mandatory italic = non-terminal normal font = optional  | to refer to an object or a class or a primitive datum | the block where it is declared | other variables and methods in any class in the same package by default |  | its value which is an object | value |   | the name of a class as its type | calling methods or accessing the object's instance variables | an instance of any subclass of the abstract class |