成员内部类:应用率低、了解,
- 类中套类,外面的称为Outer外部类,里面的称为Inner内部类;
- 内部类通常只服务于外部类,对外不具备可见性
- 内部类对象通常是在外部类中创建的
- 内部类中可以直接访问外部类的成员(包括私有的),在内部类中有个隐式的引用指向了创建它的外部类对象 eg:外部类名.this.
匿名内部类:应用率高
若想要创建一个类的对象,并且对象只被创建一次,此时该类不必命名,称之为匿名内部类————代码结构更加简洁
public abstract class Boo {
abstract void show();
}
public class NstInnerClassDemo {
public static void main(String[] args) {
/*
* 1.创建了Aoo的派生类,但是没有名字
* 2.为该派生类创建了一个对象,名为o
* 3.大括号中的为派生类的类体
*/
Aoo o=new Aoo(){
};
/*
* 1.创建了Aoo的派生类,但是没有名字和上方无名氏不是同一个
* 2.为该派生类创建了一个对象,名为o2
* 3.大括号中的为派生类的类体
*/
Aoo o2=new Aoo(){
};
/*1.创建了Boo的派生类,但是没有名字和上方无名氏不是同一个
* 2.为该派生类创建了一个对象,名为o3
* 3.大括号中的为派生类的类体
*/
Boo o3= new Boo(){
void show(){
System.out.println("show");
}
};
}
面试:
问:内部类有独立的.class吗?——————常见面试题
答:有
业务功能的实现套路
- 先写行为/方法:①若为派生类特有的行为,就将方法设计在特点类中;②若为派生类共有的行为,就将方法设计在超类中
- 窗口调用:①定时触发的,在定时器中调;②事件触发,在侦听器中调用