Class structure |
Feature |
Joos 0 |
Joos 1 |
Joos 2 |
Java 1.3 |
extends |
| X | X | X |
implements |
| X | X | X |
static method declaration |
| X | X | X |
class import |
| X | X | X |
package import |
| X | X | X |
package |
| X | X | X |
public interfaces |
| | X | X |
static field declaration |
| | X | X |
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 |
| X | X | X |
implicit this for fields |
| X | X | X |
implicit this for methods |
| X | X | X |
access static field |
| X | X | X |
call static methods |
| X | X | X |
non-this field access |
| X | X | X |
method overloading |
| X | X | X |
array length |
| X | X | X |
implicit this class for static fields |
| | X | X |
implicit this class for static methods |
| | X | X |
closest match method overloading |
| | X | X |
array method call |
| | X | X |
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 |
X | X | X | X |
protected fields |
X | X | X | X |
public constructors |
X | X | X | X |
public methods |
X | X | X | X |
public fields |
| X | X | X |
protected methods |
| X | X | X |
abstract |
| X | X | X |
final classes |
| X | X | X |
final methods |
| X | X | X |
protected constructors |
| X | X | X |
final field declaration |
| | X | X |
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 |
X | X | X | X |
field initializers |
X | X | X | X |
constructor overloading |
| X | X | X |
omitted constructor |
| | X | X |
explicit super call |
| | X | X |
closest match constructor overloading |
| | X | X |
this call |
| | X | X |
instance initializers |
| | | X |
static initializers |
| | | X |
Method structure |
Feature |
Joos 0 |
Joos 1 |
Joos 2 |
Java 1.3 |
nested blocks |
| X | X | X |
arbitrary return |
| X | X | X |
omitted void return |
| X | X | X |
arbitrary local declaration |
| X | X | X |
omitted local initializer |
| | X | X |
local variable in
own initializer |
| | X | X |
multiple variables per declaration |
| | | X |
Control flow |
Feature |
Joos 0 |
Joos 1 |
Joos 2 |
Java 1.3 |
if |
X | X | X | X |
while |
X | X | X | X |
for (simple) |
| X | X | X |
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 |
| X | X | X |
throw |
| | X | X |
try/catch |
| | | X |
finally |
| | | X |
Types |
Feature |
Joos 0 |
Joos 1 |
Joos 2 |
Java 1.3 |
boolean |
X | X | X | X |
int |
X | X | X | X |
char |
| X | X | X |
byte |
| X | X | X |
short |
| X | X | X |
array |
| X | X | X |
multi array |
| | X | X |
long |
| | | X |
float |
| | | X |
double |
| | | X |
Literals and names |
Feature |
Joos 0 |
Joos 1 |
Joos 2 |
Java 1.3 |
int literals |
X | X | X | X |
boolean literals |
X | X | X | X |
string literals |
X | X | X | X |
null literal |
X | X | X | X |
char literals |
| X | X | X |
character escapes |
| X | X | X |
compound names |
| X | X | X |
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 |
X | X | X | X |
comparison operations |
X | X | X | X |
eager boolean operations |
X | X | X | X |
implicit string concatenation |
X | X | X | X |
lazy boolean operations |
| X | X | X |
instanceof |
| X | X | X |
primitive casts |
| X | X | X |
reference casts |
| X | X | X |
bitwise operations |
| | X | X |
increment and decrement |
| | X | X |
assignment operations |
| | | X |
unary plus |
| | | X |
choice |
| | | X |
bit shift |
| | | X |
implicit integer constant casts |
| | | X |