java基础
嵌套类:
(1)静态嵌套类(Static nested classes)
(2)非静态嵌套类(Non-static nested classes)又称内部类(Inner Class)
(3)本地类(Local classes)
(4)匿名类(Anonymous classes)
静态嵌套:
public class Enclosing {
private static int x = 1;
public static class StaticNested {
private void run() {
// method implementation
}
}
@Test
public void test() {
Enclosing.StaticNested nested = new Enclosing.StaticNested();
nested.run();
}
}
1.1:作为静态的嵌套类,它属于它的外部类(enclosing class),但它不是外部类的实例
1.2: 类声明可以使用所有的访问修饰符
1.3:它仅仅可以访问外部类的静态字段和静态方法,私有的也可以
1.4:它可以定义静态和非静态的成员
内部类
public class Outer {
static final int a=3; // 正确
static int b=5; // 错误
static final Object obj=null //错误,非编译时常量
String c;//正确
double d;//正确
public class Inner {
// ...
}
public static Inner getInner1(){
return new Inner(); //错误,静态方法,不能访问非静态成员
}
public Inner getInner2(){
return new Inner(); //正确
}
}
\