内部类
在Java中,可以将一个类的定义放在另外一个类的定义内部,这就是内部类。内部类本身就是类的一个属性,与其他属性定义方式一致。
分类
内部类有四种:成员内部类、局部内部类、匿名内部类和静态内部类。
1、静态内部类
定义在类内部的静态类
public class Demo{
private static int a= 1;
static class Play{
public void p() {
System.out.println("play...." + a);
}
}
}
静态内部类可以访问外部类所有的静态变量,而不可访问外部类的非静态变量。
2、成员内部类
定义在类内部,成员位置上的非静态类
public class Demo{
private int sum=2;
class Play{
public void p() {
System.out.println("play..." + sum);
}
}
}
成员内部类可以访问外部类所有的变量和方法,包括静态和非静态,私有和公有。
3、局部内部类
定义在方法中的内部类
public class Demo{
public void text(){
int count=3;
class Play{
private void p(){
System.out.println(count);
}
}
}
}
局部类可以访问外部类的所有变量和方法
4、匿名内部类
没有名字的内部类,比较常用
匿名内部类必须继承或实现一个已有的接口
public interface Demo{
public abstract void eat();
}
public class Demo1 {
public static void main(String[] args) {
Demo inn=new Demo() {
@Override
public void eat() {
System.out.println("吃饭....");
}
};
inn.eat();
}
}