Java中的海龟不是工作类

Java中的海龟不是工作类,java,turtle-graphics,Java,Turtle Graphics,我的班级结构有困难。我已经在下面发布了我的代码。我遇到的问题是确定如何在较小的函数中使用scanner值。我尝试使用我的N和S值来表示我的两个雪花函数 import java.util.Scanner; public class Snowflake { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter S: ");

我的班级结构有困难。我已经在下面发布了我的代码。我遇到的问题是确定如何在较小的函数中使用scanner值。我尝试使用我的N和S值来表示我的两个雪花函数

import java.util.Scanner;

public class Snowflake {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter S: ");
    int S = sc.nextInt();
    System.out.println("Enter N: ");
    int N = sc.nextInt();

    Turtle turtle  = new Turtle(0, 0, 60);

    public void snowflakepart(S, N) {
      int z = 1;

      if (N > 0) {
        turtle.goForward(S);

        if (N > 1) {
          turtle.turnLeft(120.0);

          while (z <= 5) {
            snowflakepart(S/3, N-1);
            turtle.turnRight(60.0);
            turtle.turnRight(180.0);
            turtle.turnLeft(180.0);
            turtle.goForward(S);
            turtle.turnRight(180.0);    
          }
        }
      }
    }

    public void drawSnowflake(S,N) {    
      int y = 1;

      while (y <= 6) {
        snowflakepart(S,N);
        turtle.turnLeft(60.0);
      }
    }
  }
}
import java.util.Scanner;
公共类雪花{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入S:”);
int S=sc.nextInt();
System.out.println(“输入N:”);
int N=sc.nextInt();
海龟=新海龟(0,0,60);
公共空间雪花部分(S、N){
intz=1;
如果(N>0){
乌龟(S),;
如果(N>1){
乌龟。左转(120.0);

而(z由于您没有提供太多信息,我冒昧猜测一下。我看到您的代码的最大问题是,您将错误的东西放在了错误的位置。也许您想这样做:

public class Snowflake {
        Turtle turtle;
     //Create a Turtle object here since you'll use it in this class' methods.
        public Snowflake(){
            turtle  = new Turtle(0, 0, 60);
        }
        public static void main(String[] args) {
          //Get a reference to your SnowFlake object here and then use this part for
          //user interaction only
            SnowFlake flake = new Snowflake();
            Scanner sc = new Scanner(System.in);
            System.out.println("Enter S: ");
            int S = sc.nextInt();
            System.out.println("Enter N: ");
            int N = sc.nextInt();

        //Call your functions here with the parameter your users just entered

        }

          //These 2 methods belong to the SnowFlake class and so they need to be 
          //declared in its body
            public void snowflakepart(int S, int N) {
                int z = 1;
                if(N > 0) {
                    turtle.goForward(S);
                    if(N>1){
                        turtle.turnLeft(120.0);
                        while(z<=5){
                            snowflakepart(S/3, N-1);
                            turtle.turnRight(60.0);
                        turtle.turnRight(180.0);
                    turtle.turnLeft(180.0);
                    turtle.goForward(S);
                    turtle.turnRight(180.0);    
                    }
                }
                }
            }
            public void drawSnowflake(int S, int N) {    
                int y = 1;
                while(y <= 6){
                    snowflakepart(S,N);
                    turtle.turnLeft(60.0);

                }
            }
        }
公共类雪花{
海龟;
//在这里创建一个Turtle对象,因为您将在这个类的方法中使用它。
公众雪花{
海龟=新海龟(0,0,60);
}
公共静态void main(字符串[]args){
//在此处获取对雪花对象的引用,然后将此部分用于
//仅限用户交互
雪花=新雪花();
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入S:”);
int S=sc.nextInt();
System.out.println(“输入N:”);
int N=sc.nextInt();
//使用用户刚刚输入的参数在此处调用函数
}
//这两个方法属于SnowFlake类,因此需要
//在其正文中声明
公共无效雪花部分(整数S,整数N){
intz=1;
如果(N>0){
乌龟(S),;
如果(N>1){
乌龟。左转(120.0);

虽然(zAre您是否遇到了某种错误?是的,我在eclipse程序中得到了X,表示我需要更改s和N。此外,我不确定在何处初始化turtle函数,因为drawsnowflake和Snowflake部分都需要它。此代码不会编译。即使它编译了,您在构建turtle后也不会对其进行任何操作。修复了此问题。)您的缩进,但是您似乎有语法错误,只在其他两个方法之后关闭main方法。也许这只是您的输入错误?看起来它们不需要是全局的。您可以调用
drawSnowFlake()
从您的主方法中,并将用户刚才提供的
N
S
值赋予它。此外,您需要定义两个方法声明中
N
S
的变量类型。从外观上看,可能是
int
?谢谢@2rs2ts,但我对S和N仍然有相同的问题。Aft呃,我关闭了主函数,它告诉我S和N没有被使用。@user2908101如果你像上面那样直接复制spacitron的代码,当然不会。你需要给海龟一些说明。我建议调用你的
Snowflake
class'方法,看看会发生什么。@user2908101 I“我很想进一步帮助您,但如果您不知道如何调用方法,在期望其他人解决您的问题之前,可能需要遵循一些初学者教程。谢谢大家。我已经解决了。