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 |