ProfessorJ language levels
A non-exhaustive list of Java features present at each level in
ProfessorJ. Higher
levels include everything at lower levels. Errors, comments, etc to me
at dblaheta at
knox.edu
Beginner:
- basic constructors
- abstract classes
- ...cannot have constructors
- subclassing
- super constructor
- if-else with single statements
- instantiating objects
- enforced "this." for instance variables and methods
- method bodies are only a return and maybe if-else
- importing classes
- arithmetic and mathematic relations (< > == etc.)
- ...including bitwise operators (^ & |)
(this may change)
- ...but == and != are not allowed on floating
point values
- boolean operators (&& || !)
Intermediate:
- interfaces ("interface", "implements", etc)
- == and != are allowed on floating point values
- casting
- void return types
- expression statements (i.e. side-effect-only expressions)
- blocks (sequences of statements)
- any statements allowed in constructor
- init'ing in field declaration
- named values in code (not just in interactions)
Advanced:
- packages
- access control (pub classes, pub/prot/priv members)
- bare code blocks in class defs (for init'ing classes?) (should be
static; likely to change)
- final methods (can't be overridden)
- static methods, fields
- optional else clause
- iterative loops (while, do-while, for,
break, continue)
- overloading
- ++, --
- arrays (incl init'ing)
- instanceof
- ?:
Full (not yet fully implemented):
- += et al
- private classes
- exceptions
- inner classes
Don Blaheta /
blahetadp@blahedo.org