► |  | How to Design Classes Languages

1 | Professor J Beginner
2 | Professor J Intermediate
3 | Professor J Intermediate + Access
4 | Professor J Advanced
| Index

▼ | 4 | Professor J Advanced

4.1 | package
4.2 | import
4.3 | class
4.4 | interface
4.5 | Modifiers
4.6 | Field
4.7 | Method
4.8 | Constructor
4.9 | Statement
4.10 | Array Init
4.11 | Expression

Version: 4.1.4
top← prev up next →

### 4`` ProfessorJ Advanced

Program

=

Import ... Def ...
PackageDec Import ... Def ...

PackageDec

=

package Name ;

Import

=

import Name ;
import Name.* ;

Def

=

Class
Interface
public Class
public Interface

Class

=

class Id {Member ...}
class Id implements Id ,Id ... {Member ...}
class Id extends Id {Member ...}
class Id extends Id implements Id ,Id ... {Member ...}
abstract class Id {Member ...}
abstract class Id implements Id ,Id ... {Member ...}
abstract class Id extends Id {Member ...}
abstract class Id extends Id implements Id ,Id ... {Member ...}

Interface

=

interface Id {Signature ...}
interface Id extends Id ,Id ... {Signature ...}

Signature

=

MethodReturn Id (Type Id ,...) ;
abstract MethodReturn Id (Type Id ,...) ;

Member

=

Field
Modifier Field
Method
Modifier Method
Constructor
Modifier Constructor
{Statement ...}

Modifier

=

public
private
protected

Field

=

Type Id = Expression ;
Type Id = ArrayInit ;
Type Id ;
static Type Id = Expression ;
static Type Id = ArrayInit ;
static Type Id ;

Method

=

MethodReturn Id (Type Id ,...) {Statement ...}
abstract MethodReturn Id (Type Id ,...) ;
final MethodReturn Id (Type Id ,...) {Statement ...}
static MethodReturn Id (Type Id ,...) {Statement ...}

MethodReturn

=

void
Type

Constructor

=

Id (Type Id ,...) {Statement ...}

Statement

=

Expression = Expression ;
if (Expression) Statement else Statement
if (Expression) Statement
return Expression ;
return ;
{Statement ...}
while (Expression) {Statement ...}
do {Statement ...} while (Expression)
for (ForInit ForExpression ForUpdate ...) {Statement ...}
break ;
continue ;
super (Expression ,...) ;
this (Expression ,...) ;
Type Id ;
Type Id = Expression ;
Type Id = ArrayInit ;
StatementExpression ;

StatementExpression

=

Id (Expression ,...)
Expression.Id (Expression ,...)
super.Id (Expression ,...)
Expression ++
++ Expression
Expression --
-- Expression

ForInit

=

Type Id = Expression ;
Type Id = ArrayInit ;
StatementExpression ,StatementExpression ... ;
;

ForExpression

=

Expression ;
;

ForUpdate

=

StatementExpression
Expression = Expression

ArrayInit

=

{ArrayInit ,...}
{Expression ,...}

Expression

=

Expression Op Expression
- Expression
+ Expression
! Expression
++ Expression
-- Expression
Expression --
Expression ++
this
Id. (expression ,...)
Expression.Id (Expression ,...)
super.Id (Expression ,...)
Expression.Id
Expression [Expression] [Expression] ...
new Id (Expression ,...)
new Type [Expression] [Expression] ...
(Type) Expression
Expression instanceof Type
Expression ? Expression : Expression
check Expression expect Expression
check Expression expect Expression within Expression
(Expression)
Id
Number
Character
String
null
true
false

Name

=

Id. ... Id

Op

=

+
-
*
/
<
<=
==
>
>=
&&

Type

=

Id
boolean
int
char
double
float
long
byte
short
Type []

An Id is a sequence of alphanumeric characters, _, and $.

top← prev up next →