首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java: run()方法

Java: run()方法
EN

Stack Overflow用户
提问于 2014-07-08 17:16:56
回答 4查看 890关注 0票数 0

我只是在学习Java,在理解run()方法时遇到了问题。经过三天的努力,我决定问这个问题,这已经令人沮丧了。run()方法是内置的还是用户定义的?在我正在阅读的一个教程中,它说run()方法有如下的说明:

代码语言:javascript
复制
move();
pickObject();
move();

然后,教程说,我可以根据需要定义其他方法,这样就不会再写一遍又一遍的代码,但是当它使用run()方法时,它仍然有这3行指令,有时还有其他行,那么:它是否是一个独立的方法?如果这个问题看起来很复杂,很抱歉,但这太令人沮丧了。

编辑:阅读了到目前为止的答案(谢谢大家),我必须说(因为我是初学者,就像:我只是在学习什么是方法),我不知道线程是什么,或者是可运行的,或者是提供的任何术语。

代码语言:javascript
复制
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();
}

应该是:

代码语言:javascript
复制
public void run() {
run();
turnLeft();
move();
turnLeft();
turnLeft();
turnLeft();
move();
move();
putObject();
move();
}

另外,run()方法可以在自己的内部吗?,代码的其余部分不应该单独放置吗?在其他括号里还是别的什么?而且,run()方法可以有两个具有不同命令的实例吗?就像第一个run()有3个命令,然后有相同的3和更多的.

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-07-08 17:26:19

move()和pickObject()是您希望在本例中使用的方法。它们都可能包含大量代码,因此您不希望每次只在一行中调用move()时都将每个代码都写出来。run()只是一个方法,在您的例子中,可以使用它来调用两个pickObject()和一个pickObject(),当您稍后调用run时,它将按照这个顺序执行一个move()、pickObject()和move()。

我还应该提到,当您希望在单独的thread.In线程上执行run()时,通常会调用run(),run()只是定义了在另一个线程上应该发生的事情。

票数 0
EN

Stack Overflow用户

发布于 2014-07-08 17:19:59

可能run()方法被定义为一种“执行”快捷方式。

也就是说,我们不是写move()pickup()move(),而是每次想要这样做的时候都写run()

在本例中,run()是用户定义的方法,也可以称为runProgram()execute()poop()。只是移动,拾取,移动的简写形式。

编辑:没关系,由于上面的原因,Runnable是一个界面。在这种情况下,我说的大部分内容仍然适用:您仍然必须定义run()方法,以满足您正在实现可运行接口的事实。只是你必须叫它run(),而不是你想要的任何东西。

票数 0
EN

Stack Overflow用户

发布于 2014-07-08 17:23:33

run()方法确实存在于Thread类中,并用于执行它。run()Thread中的一个示例可以如下所示:

代码语言:javascript
复制
public void run() {
    if (target != null) {
        target.run();
    }
}

如果用户在一个run()超类中重写它,那么该Thread方法将位于堆栈框架中。JDK可以删除它以改进堆栈帧输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24637872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档