内部类
简介:内部类可分为成员内部类、局部内部类以及匿名类。
1.成员内部类
在一个类中使用内部类,可以在内部类中直接存取其所在类的私有成员变量。在内部类中可以随意使用外部类的成员变量和成员方法。
成员内部类的语法如下:
public class Outclass{
// ...语句块
private class Innerclass{
//...语句块
}
}
内部类的实例一定要绑定在外部类的实例上,如果从外部类冲初始化一个内部类对象,那么内部类对象就会绑定到外部类对象上。
public class OuterClass {
innerClass in =new innerClass();
public void ouf() //外部类方法
{
in.inf();
}
class innerClass{
innerClass(){
}
public void inf(){
}
int y=0;
}
public innerClass doit(){ //外部类方法
in.y=4;
return new innerClass();
}
public static void main(String[] args) {
OuterClass out =new OuterClass();
//内部类的对象实例化必须在外部类或者外部类的非静态方法中实现
OuterClass.innerClass in = out.doit(); //通过外部类的非静态方法实现内部类的实例化
OuterClass.innerClass in2=out.new innerClass(); //通过外部类实现内部类的实例化
}
}
2.局部内部类
局部内部类是指定义在类的局部位置的类,如在类的方法或任意的作用域中均可以定义内部类。
3. 匿名内部类
匿名内部类的语法如下:
return new A(){
...//内部实体
};
其中A为类名
4.静态内部类
在内部类前添加修饰符static,这个内部类就变为静态内部类。
静态内部类具有以下两个特点:
- 如果创建静态内部类的对象,不需要其外部类的对象;
- 不能从静态内部类的对象中访问非静态外部类对象。

浙公网安备 33010602011771号