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本身是不允许多继承的,如果我们想一个类继承多个基类,就可以使用内部类。通过内部类分别继承一个基类,外部类创建内部类的对象,并使用内部类的方法,变相地实现了多继承 |