Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为抛硬币模拟器创建硬币?_Java_Java.util.scanner - Fatal编程技术网

Java 如何为抛硬币模拟器创建硬币?

Java 如何为抛硬币模拟器创建硬币?,java,java.util.scanner,Java,Java.util.scanner,我为我的抛硬币模拟器创建了我的硬币类,但我有几个问题,我缺少什么使它翻转20次(或者这是我在程序中写的东西?),还有,我如何在程序中创建“硬币”? 这是到目前为止的课程 import java.util.Random; import java.util.Scanner; public class Coin { private String sideUp; private int headCount; private int tailCount;

我为我的抛硬币模拟器创建了我的硬币类,但我有几个问题,我缺少什么使它翻转20次(或者这是我在程序中写的东西?),还有,我如何在程序中创建“硬币”? 这是到目前为止的课程

   import java.util.Random;
   import java.util.Scanner;

   public class Coin
   {
   private String sideUp;
   private int headCount;
   private int tailCount;

   private Random rand = new Random();

   public void toss()
   {
      sideUp = "";
      headCount = 0;
      tailCount = 0;
      Random rand = new Random();


      //Get random value 0 or 1
      int value = rand.nextInt(2);
      if(value == 0 )
      {
         this.sideUp = "heads";
         headCount++;
      }
      else
      {
         this.sideUp = "tails";
         tailCount++;
      }

   }
   public String getSideUp(String sideUp)
   {
      this.sideUp = "";
      headCount = 0;
      tailCount = 0;
      return sideUp;
   }
   public int getHeadCount(int headCount)
   {
      this.sideUp = "";
      this.headCount = 0;
      tailCount = 0;
      return headCount;
   }
   public int getTailCount(int tailCount)
   {
      this.sideUp = "";
      this.headCount = 0;
      this.tailCount = 0;
      return tailCount;
   }
}

缺少一个
main()
方法,该方法是将代码作为应用程序运行所必需的。请尝试以下操作:

public class Coin {
    // keep your original code...

    public static void main(String[] args) {
        Coin theCoin = new Coin();
        for (int i=0; i < 20; ++i) {
            theCoin.toss();
        }

        System.out.println("Coin was heads " + theCoin.getHeadCount() + " times.");
        System.out.println("Coin was tails " + theCoin.getTailCount() + " times.");

    }
}
公共级硬币{
//保留您的原始代码。。。
公共静态void main(字符串[]args){
硬币硬币=新硬币();
对于(int i=0;i<20;++i){
掷硬币;
}
System.out.println(“Coin was heads”+theCoin.getHeadCount()+“times”);
System.out.println(“Coin was tails”+theCoin.getTailCount()+“times”);
}
}

只是一个旁注:这是一个很好的示例,您可以使用枚举来提高类型安全性,而不是将币面称为字符串,因为您有有限数量的状态,可以是CoinFace.Heads或CoinFace.Tails。sideUp将是CoinFace类型而不是StringI我明白你的意思,但是老师给了我们一个UML图,其中包含了我们应该用于该程序的变量:/这太可惜了,但是如果你为了课堂需要遵循提供的设计,那么你应该这样做。然而,作为一个额外的学习点,值得注意的是字符串类型并不完全适合表示两个有限状态。我太累了(我已经完成了另外两项作业),我忘了展示我当时在实际项目中取得的成绩。