内部类
内部类是定义在类的内部的类,其所在的类称为外部类。内部类分为成员内部类和。
成员内部类是依赖于外部类的,其对象可以访问外部类的成员变量和方法,其目的是为外部类提供复合成员数据和算法,例如List接口的实例类都提供了遍历元素的迭代器,这些迭代器都是实现了Iterator接口的位于List接口实现类的内部或方法中。成员内部类不能独立实例化,必须通过的对象才能实例化,如下例的代码:
Outter.Inner in=out.new Inner();
其中out是外部类的对象。
package d;
class Outter{ int value; public int getValue(){ return value; } public void setValue(int value){ this.value=value; }
@Override public String toString() {
return "Outter.value="+value; }
class Inner { int val;
public int getVal() { return val; }
public void setVal(int val) { this.val = val; } public void setOutterVal(int v) { value=v;//访问外部类成员变量 } public String toString() {
return "Inner.val="+val; } } } public class Demo { public static void main(String[] args) { Outter out=new Outter(); out.setValue(100); System.out.println(out); Outter.Inner in=out.new Inner(); in.setVal(50); System.out.println(in); in.setOutterVal(200); System.out.println(out); }
}
|
运行程序,结果如下图所示: