我正在使用BlueJ IDE。我有一个名为ProgramOne
的主类,另一个类StarTurtle
(用于提供实例方法)。
以下是ProgramOne
的代码:
public class ProgramOne
{
public static void main (String[ ] args) {
StarTurtle turtle1 = new StarTurtle();
int result = turtle1.StartTurtle(5);
}
}
以下是StarTurtle
的代码:
public class StarTurtle
{
private int points;
public int StartTurtle(int x)
{
points = x;
Turtle sue;
sue = new Turtle();
sue.paint (90, 40);
}
}
(你看到的turtle
方法来自另外两个我为了简洁而没有粘贴的类。这些类可以在http://www.cs.ccsu.edu/~jones/book.htm手册中找到)
代码只编译,没有执行选项。但是,没有执行void main (String[ ] args)
的选项,应该执行主类。有谁知道这是什么原因?我假设代码本身存在问题。 StarTurtle
类确实执行,但主类ProgramOne
没有,这让我相信问题出在ProgramOne
类。
当我的意思是"执行"的选项时,我指的是这个BlueJ功能:
答案 0 :(得分:0)
当您从ProgramOne类调用main方法时,您已经创建了一个StarTurtle turtle1实例。但是当您通过调用turtle1.StartTurtle(5)方法在结果变量中赋值时,该变量中不存储任何内容。问题是你在StarTurtle类中有这个函数的问题。您已将public int StartTurtle(int x)函数定义为返回类型,但实际上它并未返回任何内容。因此,您需要在该代码块上添加一个return语句。
public class StarTurtle {
private int points;
public int StartTurtle(int x){
points = x;
Turtle sue;
sue = new Turtle();
sue.paint (90, 40);
return points;
}
}
但是,另一方面,虽然它们正在运行,但您的类和功能是不正确的。你的课应该是这样的。
public class ProgramOne{
public static void main (String[ ] args) {
StarTurtle turtle1 = new StarTurtle();
turtle1.StartTurtle();
}
}
public class StarTurtle {
//Void type of method instead of previous return type
public void StartTurtle(){
Turtle sue;
sue = new Turtle();
sue.paint (900, 550);
}
}