JAVA内部类




1.内部类作为外部类的一个特殊的成员,它有类成员的封闭等级:private ,protected,默认(friendly),public它有类成员的修饰符: static,final,abstract 。
2.非静态内部类nested inner class,内部类隐含有一个外部类的指针this,因此,它可以访问外部类的一切资源(当然包括private)外部类访问内部类的成员,先要取得内部类的对象,并且取决于内部类成员的封装等级。非静态内部类不能包含任何static成员。
3.静态内部类:static inner class,不再包含外部类的this指针,并且在外部类装载时初始化.静态内部类能包含static或非static成员.
静态内部类只能访问外部类static成员.外部类访问静态内部类的成员,循一般类法规。对于static成员,用类名.成员即可访问,对于非static成员,只能用对象.成员进行访问。
4.对于方法中的内部类或块中内部类只能访问块中或方法中的final变量。


interface  Contents  {

    
int value();

}


interface  Destination  {

    String readLabel();

}


public   class  TestInner  {

    
private class Content implements Contents {
        
private int i = 11;
        
public int value() {
            
return 0;
      }

    }


    
protected class GDestination implements Destination {
        
private String label;
        
private GDestination(String whereTo) {
            label 
= whereTo;
        }

        
public String readLabel() {
            
return label;
        }

    }


    
public Destination dest(String s) {
        
return new GDestination(s);
    }


    
public Contents cont() {
        
return new Content();
    }

    
    
public static void main(String[] args) {

        TestInner p 
= new TestInner();
        Contents c 
= p.cont();
        Destination d 
= p.dest("Beijing");

    }

}

你可能感兴趣的:(JAVA内部类)