| Subject | 
have syntax rule | 
receive | 
model | 
add | 
declare | 
protect | 
wait on | 
is a subtopic of | 
create you | 
create by | 
name after | 
access | 
refer to | 
see also | 
 | 
extend | 
notify | 
has part | 
provide | 
place in | 
represent | 
inherit | 
contain | 
have example | 
instantiate you | 
send | 
implement | 
convert into | 
import from | 
order | 
is a kind of | 
share | 
be a descendant of | 
define | 
specify by | 
convert | 
have access modifier | 
refer to by | 
hide | 
have example of creation | 
use | 
override | 
have syntax | 
have benefit | 
be a member of | 
have | 
have part | 
return | 
has definition | 
throw when | 
be | 
communicate with | 
is partitioned into | 
| class | bold = mandatory italic = non-terminal normal font = optional  |   |   | 0 or more methods to the methods it inherits from its superclass | a list of variables, called instance variables, corresponding to data that will be present in each instance | its members from access by other classes or objects using an access modifier |   | Classes |   |   | the internals of a computer system such as 'Record', 'Table', 'Data', 'Structure', or 'Information' | any public class in other packages |   |   |  | only one superclass |   |   | implementation for all its instance methods unless the class is abstract | its own source file | several similar objects | behaviour from its superclass | data associated with each object | public class HelloWorld {    public static void main(String[] args) {       System.out.println("Hello World!");    } } | create an instance of it |   | more than one interface |   | a package | elements as follows: - class variables
 - instance variables
 - constructors
 - the most important public methods
 - methods that are simply used to access variables
 - private methods
 
  | specification |   | Object class | a class type whose instances are the values of the class type | 1 class definition |   |  |   |   |   | an implements clause to declare that it contains methods for each of the operations specified by the interface | methods that are inherited from the class's superclass | class classname {  // declarations of variables    // declarations of constructors     // declarations of other methods with public ones first }  |  | 1 named package rather than the default package | a unique name since somebody in the future might want to import the packages containing both classes and hence create a name clash | constructor |   | A template that describes the data and behaviour of its instances called objects |   | the unit of data abstraction in an object-oriented program |   | abstract class, concrete class | 
| exception |   | messages from |  |   |   |   | 0 or more condition variables | Exception Handling | use the new operator |  |   | all instance variables of all objects of its class | without reference to the  instance variables contained in it | Exception class |  |   | other objects that a condition variable has changed | public interface |   |   | any entity to which you can associate properties and behaviour | instance methods and instance variables from - the class to which it belongs
 -  all that class's superclasses 
 
  |   |   |   | messages to |   | a string using the toString method |   |   | object | one copy of each class variable of its class with the other instances of its class |   |   |   | itself to a string representation using the toString method |   | several different variables at the same time | methods from other objects using the 'private' keyword | String name = new String(); |   |   |   |   |   | state that is maintained in its variables |   | its class using the getClass method | An event that happens during program execution that prevents the program from continuing normally; generally, an error | something goes wrong in the execution of a program | distinct from every other object even if they contain the same data | other objects by sending and receiving messages | unchecked exception, checked exception | 
| programmer-created exception class | bold = mandatory italic = non-terminal normal font = optional  | messages from |  | 0 or more methods to the methods it inherits from its superclass | a list of variables, called instance variables, corresponding to data that will be present in each instance | its members from access by other classes or objects using an access modifier | 0 or more condition variables | Exception Handling | use the new operator |  | the internals of a computer system such as 'Record', 'Table', 'Data', 'Structure', or 'Information' | any public class in other packages | without reference to the  instance variables contained in it | Exception class |  | only one superclass | other objects that a condition variable has changed | public interface | implementation for all its instance methods unless the class is abstract | its own source file | several similar objects | behaviour from its superclass | data associated with each object | public class HelloWorld {    public static void main(String[] args) {       System.out.println("Hello World!");    } } | create an instance of it | messages to | more than one interface | a string using the toString method | a package | elements as follows: - class variables
 - instance variables
 - constructors
 - the most important public methods
 - methods that are simply used to access variables
 - private methods
 
  | exception | one copy of each class variable of its class with the other instances of its class | Object class | a class type whose instances are the values of the class type | 1 class definition | itself to a string representation using the toString method |  | several different variables at the same time | methods from other objects using the 'private' keyword | String name = new String(); | an implements clause to declare that it contains methods for each of the operations specified by the interface | methods that are inherited from the class's superclass | class classname {  // declarations of variables    // declarations of constructors     // declarations of other methods with public ones first }  |  | 1 named package rather than the default package | a unique name since somebody in the future might want to import the packages containing both classes and hence create a name clash | constructor | its class using the getClass method |   | something goes wrong in the execution of a program | the unit of data abstraction in an object-oriented program | other objects by sending and receiving messages |   |