1,根据内部类在类中的位置不同,可分为以下两种形式:
1)在类的成员位置:成员内部类
2)在类的局部位置(即方法内):局部内部类
2-1>,成员内部类,外界如何创建对象使用:
1)格式:外部名.内部名 对象名=new 外部对象().new 内部对象();
2) 范例:Outer.Inner oi=new Outer(). new Inner();
2-2>,局部内部类,外界只能通过方法调用
3,内部类可调用所在外部类的数据成员(包括private);
4,匿名内部类:
1>作用:快速创建一个接口类实现对象,当调用的方法需要传接口类实现类对象时比较好用。
2>格式
package domain;
/**
* TestInnerclass
*/
public class TestInnerclass {
public static void main(String[] args) {
/* 调用goSwimming */
Swimming i = new Swimming() {
public void swim() {
System.out.println("我们一起去游泳吧!");
}
};
goSwimming(i);
}
public static void goSwimming(Swimming swimming) {
swimming.swim();
}
}
/**
* swimming
*/
interface Swimming {
public void swim();
}
其中要注意的是:goSwimming方法编写时要用static修饰,Swimming接口中编写都为public修饰。具体原因请百度。