1.内部类
1)什么是内部类
将一个类定义在另一个类的内部
这个类就是内部类
2)为什么使用内部类
有些只使用一次或者只出现在特定位置
的类,编写其他类中能减少java文件
的数量,简化java项目的结构
3)一般情况下我们将包含内部类的类
称为Outer,内部类称为Inner
2.内部类的分类
1)成员内部类
最典型的内部类
就是在一个类的成员位置编写的
另一个类
1.1)成员内部类可以使用所有四种
访问修饰符修饰
1.2)外部类和内部类各自的私有成员
都可以被对方调用
1.3)如果内部类和外部类定义了同名
成员在内部类中默认调用的是
内部类的成员
如果想指定外部类的同名成员需要
<外部类名>.this.<成员>
Outer.this.c
1.4)实例化内部类对象
外部类中的普通方法直接实例化
静态方法需要如下格式
Inner in=new Outer()
.new Inner();
1.5)使用时机
只有一个类需要使用这个内部类
这个类中多个方法使用到该
内部类就适合成员内部类
1.6)内部类编译时产生独立的
class文件
例子:
public class Outer {
int age;
String name="outer";
public int a1=11;
protected int a2=12;
int a3=13;
private int a4=14;
class Inner{
public int a1=11;
protected int a2=12;
int a3=13;
private int a4=14;
public void show() {
System.out.println(this.a1);
System.out.println(Outer.Inner.this.a2);
System.out.println(Outer.this.name);
}
}
public static void main(String[] args) {
Inner in=new Outer().new Inner();
in.show();
}
}
计时器:
import java.util.Timer;
import java.util.TimerTask;
public class Test {
public static void main(String[] args) {
Timer t=new Timer();
TimerTask task=new TimerTask() {//看作向上构形
int i=1;
public void run() {//重写run方法
System.out.println("第"+i+"次执行run方法");//需要执行计机器的区域
i++;
}
};
t.schedule(task, 3000,1000);
}
}