Java 内部类
java中类是一个很重要的概念,而内部类就是在一个类结构中在嵌套一个类,java中内部类分为4种:成员内部类、静态内部类、局部内部类、匿名内部类,其中最常用也是最复杂的就是匿名内部类,接下来我们一起简单的看看java的内部类都是怎么实现的
一、成员内部类
public class Sunkai {
private static String s = "sunkai";
class kaisun {
public int a;
private int b;
protected int c;
int d;
static int f;//The field f cannot be declared static in a non-static inner type, unless initialized with a constant expression
}
}
成员内部类中不允许使用static修饰属性或方法,否则程序报错。
二、局部内部类
public void sk() {
int a=3;
/*
* Illegal modifier for the local class kaisun;
* only abstract or final is permitted
*/
public class kaisun{
/*
* Syntax error on token "a",
* VariableDeclaratorId expected after this token
*/
a=2;
}
}
局部内部类不允许用(public,private,protected)修饰,并且局部内部类使用方法的局部变量时必须以final声明。
三、静态内部类
public class Sunkai {
static class kaisun{
}
}
静态内部类的创建不需要依赖外部类可以直接创建。静态内部类不可以使用任何外部类的非static类(包括属性和方法),但可以存在自己的成员变量。
四、匿名内部类
abstract class CouXiangLei{
public abstract void s();
}
public class Sunkai {
CouXiangLei cxl = new CouXiangLei() {
public void s() {
// TODO Auto-generated method stub
}
};
}
匿名内部类必须继承一个抽象类或者实现一个接口。匿名内部类没有类名,因此没有构造方法。