package classes.one;
public class A {
class E {
// public protected private
}
static class F {
}
public void method() {
class G {
}
}
}
//public class B {
// The public type B must be defined in its own file
//}
class C {
}
//private class D {
// Illegal modifier
//}
class 可定義於
- file 中
- class 中
- method 中
in File
同一個 file 中可以有多個 class,但只能有一個是 public
因此只有同 package 能使用
同 package 也不能再有同名的 class
in Class
可以有 public、protected、private、default 存取修飾
A a = new A();
//E e = new E(); // No enclosing instance of type A is accessible. Must qualify the allocation with an enclosing instance of type A (e.g. x.new A() where x is an instance of A).
E e = a.new E(); // 必須由實例創建
F f = new F(); // 靜態類別才可由類別創建
in Method
只能在方法內部使用,即使在 class 也無法使用
class in class 沒有先後順序的差別,但 class in method 的定義一定要寫在前面
public void method() {
// G g = new G(); // 還沒定義不能使用
class G {
}
G g = new G();
}