顾名思义内部类就是创建在类内部的一个类
public class Test {
class A {
private int age;
}
}
内部类的特点:
1、内部类可以直接访问外部类的成员,包括私有
2、外部类要访问内部类的成员,必须创建对象
内部类的位置:
1、成员内部类
2、局部内部类
public class Test {
//成员内部类
class A {
private int age;
}
public void method() {
//局部内部类
class B {
private int age;
}
}
}
访问内部类的成员:外部类.内部类 对象名 = new 外部类().new 内部类()
class Outer {
class Inner {
public void method() {
System.out.println(111);
}
}
}
public class Test {
public static void main(String[] args) {
Outer.Inner oi=new Outer().new Inner();
oi.method();
}
}
二、匿名内部类
interface inner{
public void show();
};
class Outer {
public void method() {
new inner() {
@Override
public void show() {
System.out.println("show");
}
};
}
}
public class Test {
public static void main(String[] args) {
new Outer().method();
}
}
1、创建匿名内部类的格式:
new 抽象类名或者接口名(){
重写方法。
}
上面得代码很像new了一个接口,但是,不是!接口也是不能new的,这是创建了一个匿名内部类。
总结:匿名内部类就是创建了抽象类的子类,或者接口实现类的匿名对象。
上面只是创建了匿名内部类还没有调用
inner i = new inner() {
@Override
public void show() {
System.out.println("show");
}
};
i.show();
网友评论