java中的内部类
1.成员内部类:
定义为位于另一个类的内部
class Circle {
double radius = 0;
public Circle(double radius) {
this.radius = radius;
}
class Draw { //内部类
public void drawSahpe() {
System.out.println("drawshape");
}
}
}
成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private和static)
成员内部类不能有static属性
在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问
2.局部内部类
定义在一个方法或者一个作用域里面的类
class People{
public People() {
}
}
class Man{
public Man(){
}
public People getWoman(){
class Woman extends People{ //局部内部类
int age =0;
}
return new Woman();
}
}
局部内部类不能有public、protected、private以及static修饰符
3.匿名内部类
scan_bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
history_bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
匿名内部类不能有访问修饰符和static修饰符
4.静态内部类
定义在另一个类内部,只不过在类的前面多了一个关键字static
public class Test {
public static void main(String[] args) {
Outter.Inner inner = new Outter.Inner();
}
}
class Outter {
public Outter() {
}
static class Inner {
public Inner() {
}
}
}
不需要依赖于外部类
不可访问外部类的非静态资源

浙公网安备 33010602011771号