黑马程序员技术交流社区
标题:
求大神教我下面的语句建立的是一个什么样的对象?
[打印本页]
作者:
syb012
时间:
2015-11-14 17:13
标题:
求大神教我下面的语句建立的是一个什么样的对象?
class R implements Runnable
{
public void run()
{
System.out.println("Runnable...run");
}
}
public class ThreadTest2
{
public static void main(String[] args)
{
R r=new R();
new Thread(r)
{
public void run()
{
System.out.println("subThread...run");
}
}.start();
}
}
复制代码
这段代码里的这个对象是个什么样的对象?
new Thread(r)
{
public void run()
{
System.out.println("subThread...run");
}
};
复制代码
求真正的大神教我
,半桶水的就不要来误导我了
作者:
新火燎塬521
时间:
2015-11-14 17:13
至于匿名内部类
因为只是用一次,所以不需要单独建一个类继承Thread接口,就产生了这种写法
new Thread(){};在花括号中重写Thread的run方法的话 ,相当于直接建立了一个Thread的子类,重写了run方法。new Thread() public void run(){ }; 这样创建的其实是一个对象 直接加 .start() 是在用对象调用方法
作者:
新火燎塬521
时间:
2015-11-14 20:27
这段代码里面是在定义一个匿名内部类!
作者:
新火燎塬521
时间:
2015-11-14 20:33
开启线程有两种方法一种就是R类继承Runnable,然后重写run方法,main函数启动时,需要先实例化R,即R r = new R(),然后创建Thread类即
Thread thread = new Thread(r),需要注意一点就是 把r传入Thread。然后利用 thread.start(),启动线程,其实start是在调用r对象的
run()方法
class R implements Runnable
{
public void run()
{
System.out.println("Runnable...run");
}
}
public class ThreadTest2
{
public static void main(String[] args)
{
R r=new R();
Thread thread = new Thread(r);
thread.start();
}
}
复制代码
作者:
新火燎塬521
时间:
2015-11-14 20:37
第二种方法
是将类声明为
Thread
的子类。该子类应重写
Thread
类的
run
方法。
class PrimeThread extends Thread {
public void run() {
System.out.println("PrimeThread.....run");
}
}
public class ThreadTest2
{
public static void main(String[] args)
{
PrimeThread pt = new PrimeThread();
pt.start();
}
}
复制代码
作者:
触底反弹
时间:
2015-11-15 22:52
就只是一个匿名的线程类,重写了run方法,在线程thread调用start()方法的时候自动调用run()方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2