我只是在学习Java,在理解run()方法时遇到了问题。经过三天的努力,我决定问这个问题,这已经令人沮丧了。run()方法是内置的还是用户定义的?在我正在阅读的一个教程中,它说run()方法有如下的说明:
move();
pickObject();
move();然后,教程说,我可以根据需要定义其他方法,这样就不会再写一遍又一遍的代码,但是当它使用run()方法时,它仍然有这3行指令,有时还有其他行,那么:它是否是一个独立的方法?如果这个问题看起来很复杂,很抱歉,但这太令人沮丧了。
编辑:阅读了到目前为止的答案(谢谢大家),我必须说(因为我是初学者,就像:我只是在学习什么是方法),我不知道线程是什么,或者是可运行的,或者是提供的任何术语。
public void run() {
move(); \
pickBeeper(); = if these are the commands for the run() method then why are they being written
move(); / again here? isn't that the point of a method as not to write the code again?
turnLeft();
move();
turnLeft();
turnLeft();
turnLeft();
move();
move();
putBeeper();
move();
}应该是:
public void run() {
run();
turnLeft();
move();
turnLeft();
turnLeft();
turnLeft();
move();
move();
putObject();
move();
}另外,run()方法可以在自己的内部吗?,代码的其余部分不应该单独放置吗?在其他括号里还是别的什么?而且,run()方法可以有两个具有不同命令的实例吗?就像第一个run()有3个命令,然后有相同的3和更多的.
发布于 2014-07-08 17:26:19
move()和pickObject()是您希望在本例中使用的方法。它们都可能包含大量代码,因此您不希望每次只在一行中调用move()时都将每个代码都写出来。run()只是一个方法,在您的例子中,可以使用它来调用两个pickObject()和一个pickObject(),当您稍后调用run时,它将按照这个顺序执行一个move()、pickObject()和move()。
我还应该提到,当您希望在单独的thread.In线程上执行run()时,通常会调用run(),run()只是定义了在另一个线程上应该发生的事情。
发布于 2014-07-08 17:19:59
可能run()方法被定义为一种“执行”快捷方式。
也就是说,我们不是写move(),pickup(),move(),而是每次想要这样做的时候都写run()。
在本例中,run()是用户定义的方法,也可以称为runProgram()、execute()或poop()。只是移动,拾取,移动的简写形式。
编辑:没关系,由于上面的原因,Runnable是一个界面。在这种情况下,我说的大部分内容仍然适用:您仍然必须定义run()方法,以满足您正在实现可运行接口的事实。只是你必须叫它run(),而不是你想要的任何东西。
发布于 2014-07-08 17:23:33
run()方法确实存在于Thread类中,并用于执行它。run()在Thread中的一个示例可以如下所示:
public void run() {
if (target != null) {
target.run();
}
}如果用户在一个run()超类中重写它,那么该Thread方法将位于堆栈框架中。JDK可以删除它以改进堆栈帧输出。
https://stackoverflow.com/questions/24637872
复制相似问题