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