java - 创建多个java对象/清理项目

标签 java class object

第一次海报。因此,如果这样做不正确,请善待。完全公开这是一个介绍性的java类,但是我已经把这个项目转入我只是想重新设计它来修复我的错误

主要问题是理解对象和类的基础知识。该程序应该模拟 Yahtzee 5 掷骰子。我需要创建一个骰子类,然后创建 5 个骰子对象,滚动 1 到 5 之间的随机值。目前我创建了一个名为 OneDice 的类:

public class OneDice {

    private int die;   // variable for a dice

    public OneDice() {
        roll();  //constructor
    }

    public void roll() {// random 
        die = (int)(Math.random()*6) + 1;
    }


    public int value() {

    // return the value of the die variable
    return die;
}

接下来我们要创建一个 Yahtzee 类,它“容纳五个骰子对象”,这是我创建的:

public class Yahtzee  {
    private int dice1;
    private int dice2;
    private int dice3;
    private int dice4;
    private int dice5;

    public Yahtzee(){
          yahtzeeRoll(); //constructor
    }

    public void yahtzeeRoll(){          
         OneDice diceA = new OneDice();
         OneDice diceB = new OneDice();
         OneDice diceC = new OneDice();
         OneDice diceD = new OneDice();
         OneDice diceE = new OneDice();
         dice1 = diceA.value(); 
         dice2 = diceB.value(); 
         dice3 = diceC.value();
         dice4 = diceD.value();
         dice5 = diceE.value();
    }

    public void printYahtzee(){ //prints the dices and graphics
       System.out.println("dice 1 comes up= " + dice1);
       System.out.println("dice 2 comes up= " + dice2);
       System.out.println("dice 3 comes up= " + dice3);
       System.out.println("Dice 4 comes up= " + dice4);
       System.out.println("Dice 5 comes up= " + dice5);
    }

现在我明白这是糟糕的编码。随着dice1 = diceA.value等线路。如何创建可分配给每个单独骰子的 OneDice 对象的五个单独实例。我知道这确实是基本的东西。我尝试过重读我的教科书并在网上阅读内容,但就是无法弄清楚。提前致谢。我希望他的主题不要太宽泛:(

完整说明:

创建一个模拟单个六面骰子的类。骰子可以具有从 1 到 6 的值。构造函数应将骰子设置为随机值(即骰子不应以零值开始)。它应该有两种方法。其中一种称为“掷骰”,将骰子随机设置为新值。另一个称为值,返回骰子的当前值。

创建一个名为 Yahtzee 的第二个类,它包含五个骰子对象。有一个名为 roll 的方法来掷所有五个骰子。有一个名为 show 的方法,用于显示五个骰子中每个骰子的值。

你的主类应该掷五个骰子,显示结果,然后询问用户是否想再次掷骰子。

最佳答案

我会重写你的 Yhatzee 类以利用这样的数组(这假设你想保留单独的骰子实例,我个人会这样做,以便稍后我可以记忆起特定骰子的值,但是如果这永远没有必要) ,您没有具体理由这样做);

public class Yahtzee  {
    private Dice[] dice;
    private final int DICE_COUNT=5;
    public Yahtzee(){
        dice=new Dice[DICE_COUNT];
        for(int i =0;i<DICE_COUNT;i++)
            dice[i] = new Dice();
        yahtzeeRoll(); //constructor
    }
    public void yahtzeeRoll(){         
        for(int i =0;i<DICE_COUNT;i++)
            dice[i].roll();
    }
    public void printYahtzee(){ //prints the dices and graphics         
        for(int i =0;i<DICE_COUNT;i++)
            System.out.println("dice "+(i+1)+" comes up= " + dice[i].value());
    }
}

关于java - 创建多个java对象/清理项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18004618/

相关文章:

JavaFX - 有没有一种方法可以使用 imageview 多次打印一张图像?

java - C 主 vs Java 主

java - ByteBuffer getInt() 问题

PHP - 扩展类

r - 如何在R中输出树状人类可读的对象结构

java - 如果该行不遵循特定模式,是否有在读取文件时指定消息的功能

python - 我可以从 Python 中的变量调用方法吗?

python - 如何使用 'mother' 中继承的 'child class' 类的函数?

jQuery 从对象集合中删除对象

javascript - 如何通过关键词获取最相关的问题