Class structure
Feature Joos 0 Joos 1 Joos 2 Java 1.3
extends  XXX
implements  XXX
static method declaration  XXX
class import  XXX
package import  XXX
package  XXX
public interfaces   XX
static field declaration   XX
package private interfaces    X
omitted final field initializer    X
multiple types per file    X
interface constants    X
Unicode input    X
nested types    X
Method and field access
Feature Joos 0 Joos 1 Joos 2 Java 1.3
external call  XXX
implicit this for fields  XXX
implicit this for methods  XXX
access static field  XXX
call static methods  XXX
non-this field access  XXX
method overloading  XXX
array length  XXX
implicit this class for static fields   XX
implicit this class for static methods   XX
closest match method overloading   XX
array method call   XX
super method call    X
non-static access of static field    X
non-static access of static method    X
Modifiers
Feature Joos 0 Joos 1 Joos 2 Java 1.3
public classes XXXX
protected fields XXXX
public constructors XXXX
public methods XXXX
public fields  XXX
protected methods  XXX
abstract  XXX
final classes  XXX
final methods  XXX
protected constructors  XXX
final field declaration   XX
synchronized    X
transient    X
strictfp    X
native    X
volatile    X
package private classes    X
package private methods    X
package private fields    X
private methods    X
private fields    X
final formals    X
final locals    X
Constructors
Feature Joos 0 Joos 1 Joos 2 Java 1.3
implicit super call XXXX
field initializers XXXX
constructor overloading  XXX
omitted constructor   XX
explicit super call   XX
closest match constructor overloading   XX
this call   XX
instance initializers    X
static initializers    X
Method structure
Feature Joos 0 Joos 1 Joos 2 Java 1.3
nested blocks  XXX
arbitrary return  XXX
omitted void return  XXX
arbitrary local declaration  XXX
omitted local initializer   XX
local variable in own initializer   XX
multiple variables per declaration    X
Control flow
Feature Joos 0 Joos 1 Joos 2 Java 1.3
if XXXX
while XXXX
for (simple)  XXX
for (general)    X
do-while    X
switch    X
break    X
continue    X
labeled statement    X
synchronized statement    X
Exceptions
Feature Joos 0 Joos 1 Joos 2 Java 1.3
throws  XXX
throw   XX
try/catch    X
finally    X
Types
Feature Joos 0 Joos 1 Joos 2 Java 1.3
boolean XXXX
int XXXX
char  XXX
byte  XXX
short  XXX
array  XXX
multi array   XX
long    X
float    X
double    X
Literals and names
Feature Joos 0 Joos 1 Joos 2 Java 1.3
int literals XXXX
boolean literals XXXX
string literals XXXX
null literal XXXX
char literals  XXX
character escapes  XXX
compound names  XXX
class literals    X
octal and hex literals    X
long literals    X
floating point literals    X
array data    X
Operations
Feature Joos 0 Joos 1 Joos 2 Java 1.3
arithmetic operations XXXX
comparison operations XXXX
eager boolean operations XXXX
implicit string concatenation XXXX
lazy boolean operations  XXX
instanceof  XXX
primitive casts  XXX
reference casts  XXX
bitwise operations   XX
increment and decrement   XX
assignment operations    X
unary plus    X
choice    X
bit shift    X
implicit integer constant casts    X