1、 内部类:内部类可以直接访问外部类的成员。
匿名对象:没有引用类型变量指向的对象成为匿名对象。
匿名内部类:没有类名的类就称为匿名内部类。
匿名内部类的使用前提:必须存在继承或者实现关系。
因为没有类名,创建其对象必须借助于它父类的名字或者它父接口的名字。其只是没有类名,其余成员一率具备。
主要应用场景:作为参数传递。
2:、线程
package cn.ustb.a;
import org.junit.Test;
public class Test3 extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("方式2的线程创建方法");
}
/**
* 方式1:编写类继承Thread类,重写run方法,start开启线程。
*/
@Test
public void test(){
Test3 a= new Test3();
a.start();
}
/**
* 方式2:直接实现runnable接口(Thread类其实也是实现的runnable接口),重写run方法。new Thread传参自定义的对象。
*/
@Test
public void test2(){
Thread th = new Thread(new MyThread());
th.start();
}
class MyThread implements Runnable{
public void run() {
System.out.println("方式2的线程创建方法");
}
}
}