... sign.1.1
As we will explain shortly, Java supports several different sizes of integer representation; 31 binary digits plus sign is the default for integer constants.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... call.1.2
In the official Java Language Specification, the term target is used instead of receiver.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... access.1.3
Of course, a static method can invoke an instance method (or extract an instance field) of class if it explicitly specifies a receiver for the invocation.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... classes1.4
Any class that is not declared as abstract is ``concrete''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... superclass.1.5
In pathological cases, some repeated code may not be subject to factoring because of conflicts among possible factorings. For example, variants A and B may share code for method m while variants B and C share code for method n. In this case, either the code for method m or the code for method n can be hoisted but not both. More complex factoring methods are possible (using, for example, the command pattern discussed in Section 1.8), but they are typically not worth the complication.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... definition1.6
For a composite class hierarchy, use the top class.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... m1.7
The redefined method must have exactly the same name and input and output types as the method m that would have been inherited.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Object.1.8
For example, the classes Hashtable and HashMap in the Java library both rely on the hashcode() method.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... methods.1.9
An interface may also include static final fields.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... data.1.10
Of course, any static method can be converted to an instance method in some class, but the conversion is gratuitous since the static method code ignores this.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... returns.1.11
In Scheme, this statement is false in general; local variables continue to exist as long as a ``closure'' referring to them exists.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... definition;1.12
The return types of arithmetic operators generally depend on the types of their arguments. For some operator applications, the table immediately reports a type error.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... statement2.1
For readers unfamiliar with C-style for loops and the autoincrement idiom i++, both of these constructs are explained in the next subsection.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... loop:2.2
With one minor exception involving the use of continue in the loop body. Since our Java subset does not include continue, it is not an issue.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... call2.3
Taking care to avoid interference from side effects!
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Corky Cartwright
2001-08-02