这是我的代码:
public class Project1mrybak3
{
public static void main (String[] args)
{
System.out.println("Begin Java Exection");
System.out.println("");
// put your Java Program here
//choose picture
String picfile = FileChooser.pickAFile();
Picture pic = new Picture(picfile);
//Create turtle 1
Turtle t1 = new Turtle (pic);
t1.setPenWidth(10);
//Create turtle 2
Turtle t2 = new Turtle (pic);
flower(t1,200);
//show picture
pic.show();
System.out.println("");
System.out.println("End Java Exection");
}//end of main class
public static void flower (Turtle tparam, int x )
{
tparam.forward(x);
}
public static void flowers ()
{
flower(t1,15);
}
} // end of Template class
你可以说,它没有多大意义,但我刚开始写它。我的问题是,对于最后一个方法flowers
,当我尝试运行它时,它说它无法找到符号变量t1
。如果我取出参数,则表示需要参数Turtle
和int
。我可以不在方法中放入方法吗?
最终我的目标是创建大约4种方法来绘制花的部分,然后将它们全部放在一个方法中,然后在我的主代码中,我可以用turtle
t1
调用该方法和一些x
变量。
感谢您的帮助和时间!
答案 0 :(得分:3)
不,你不能把方法放在方法里面。
如果你需要使用多个方法并且将变量作为参数传递没有意义,你应该将所需的变量变成fields (or members) of a class(读取它会有帮助的链接)。将他们的声明移到他们所在的方法之外(例如main
)并进入类本身的范围。然后,该类中的所有方法都可以引用这些变量:
this.
为前缀答案 1 :(得分:1)
Method
个对象有点超出了这个问题的范围......)。我并不是要设想你的设计,但似乎你可能想要在一个单独的Turtle类中使用各种绘图方法,并且你可以在该类中使用另一个方法依次调用所有辅助方法,如下所示:
public void drawFlower(int xPosition) {
drawStem(xPosition);
drawStamen(xPosition);
drawPetals(xPosition);
...
}
这样,所有这些辅助方法都可以访问(我认为)做绘图的Turtle
(通过this
关键字,如NickC指出的那样),并且他们可以返回修改后的如果你想要xPosition,你可以将不同的起点传递给下一个方法。
答案 2 :(得分:0)
您无法在方法中定义方法,但可以在方法内部调用方法 - 例如在具有可能不同参数的循环中重新运行方法,直到满足条件。