static的内部类行为上像一个独立的类,非static在行为上类似类的属性或方法且禁止声明static的方法。内部类可以访问外部类的所有方法与属性,但static的内部类只能访问外部类的静态属性与方法。 
 
一部分代码如下: 
public class InnerClass { 
    private static String nickName = "anan"; 
    private String name; 
    private int age; 
    
    public InnerClass(String name, int age) 
    { 
        this.name = name; 
        this.age = age; 
    } 
    
    public String getName() 
    { 
        return name; 
    } 
    public void setName(String name) 
    { 
        this.name = name; 
    } 
    
    public int getAge() 
    { 
        return age; 
    } 
    public void setAge(int age) 
    { 
        this.age = age; 
    } 
    
    public static class Inner 
    { 
        private String heart = "zhaoli"; 
        public String getHeart() 
        { 
            return heart; 
        } 
        public void setHeart(String h) 
        { 
            this.heart = h; 
        } 
         
        public void print() 
        { 
            System.out.println(InnerClass.nickName); 
            System.out.println(getHeart()); 
        } 
    } 
} 
public class InnerClassTest { 
    public static void main(String[] args) 
    { 
        InnerClass.Inner inner = new InnerClass.Inner(); 
        inner.print(); 
        inner.setHeart("simple-simply"); 
        inner.print(); 
    } 
} 
 
JAVA 内部类还有一个作用,那就是实现JAVA的多继承。JAVA本身是不允许多继承的,如果我们想一个类继承多个基类,就可以使用内部类。通过内部类分别继承一个基类,外部类创建内部类的对象,并使用内部类的方法,变相地实现了多继承 |