我是一名AP计算机程序设计专业的学生,我在理解如何调用一个类中定义的驱动程序的方法以及从非驱动程序的构造函数中创建驱动程序类中的对象方面遇到了很多麻烦。类。我的书有以下几个类,程序的目的是模拟硬币的翻转:
import java.util.Random;
public class Coin{
private int HEADS = 0;
private int TAILS = 1;
private int face;
Coin mycoin = new Coin();
public Coin(){
flip();
}
public void flip(){
face = (int) (Math.random() * 2);
}
public boolean isHeads(){
return (face == HEADS);
}
public String toString(){
String faceName;
if (face == HEADS)
faceName = "Heads";
else
faceName = "Tails";
return faceName;
}
}
以下是本书中的示例驱动程序:
public class FlipRace
{
public static void main(String[] args)
{
final int NUM_FLIPS = 1000;
int heads = 0, tails = 0;
Coin myCoin = new Coin();
for (int count = 1; count <= NUM_FLIPS; count++)
{
myCoin.flip();
if (myCoin.isHeads())
heads++;
else
tails++;
}
System.out.println("The number of flips: " + NUM_FLIPS);
System.out.println("The number of heads: " + heads);
System.out.println("The number of tails: " + tails);
}
}
我遇到的问题是,当我尝试重新创建驱动程序或制作任何驱动程序时,驱动程序似乎无法调用构造函数的自定义类。我得到的错误如下:
cannot find symbol
symbol: Class Coin
location: Class (name of driver program)
老实说,我不知道问题是什么。有人告诉我,为了访问构造函数需要一个单独的.java文件,但我找不到办法。那个人错了吗?我应该将main方法和构造函数都放在一个程序中吗?如果不是这样,我如何调用另一个类的方法?
我一直在努力解决这个问题差不多一个星期,所以任何帮助都会受到赞赏。
编辑:for循环中的拼写错误是我自己的。它们不在实际程序中。我现在已修好它们了。
答案 0 :(得分:0)
Coin
类位于同一个程序包中(或者导入程序包Coin
所在的程序包中),看起来您将它们都放在默认程序包中。Coin.java
之前(或同时)编译javac *.java
确保在执行驱动程序时指定包含当前文件夹的类路径,如
java -cp。 FlipRace
最后,
for (inc count = 1; counr <= NUM_FLIPS; count++)
应该是
for (int count = 1; count <= NUM_FLIPS; count++)
我没有详尽地搜索您的代码以获取更多错别字。
答案 1 :(得分:0)
通过从Coin Class
中获取此代码来试试这个Coin mycoin = new Coin();
public Coin(){
flip();
}
并在FlipRace的for循环行中进行了更改
for (int count = 1; count <= NUM_FLIPS; count++)
答案 2 :(得分:0)
我认为这里可以提供的最佳建议是研究Java包的基础知识。这是一个很好的起点:Java packages tutorial
它涵盖了以下主题:
阅读完毕后,您应该能够理解您所面临的问题。