java基础

86 阅读1分钟

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(); //正确 
    }
 
}

\