(Adapted from UWCSE501)
null as a constant expression and
support == and != for object
reference types.return statements anywhere in a method.this.void methods that do not return a value,
a return statement with no
expression, and appropriate type checking rules.public and private declarations on both
methods and instance variables, and check to ensure that access restrictions
are not violated.Object class that is implicitly the
superclass of any class that does not explicitly
extend another class.String literals, extend System.out.println to
support Strings, and overload the +
operator for String values.double as a numeric type, overload
System.out.println to print doubles,
and implement arithmetic operations for double, possibly including
mixed-mode integer and floating-point arithmetic where integer values
are automatically converted to double as needed.instanceof and type casts (which can
require a runtime instanceof check). (This
actually is surprisingly easy to do.)super. as a prefix in method
calls.super(...) at the beginning of the body of a
constructor.ints, except the type checking rules
are more interesting).