-->
当前位置:首页 > 题库 > 正文内容

主观题:设计一个Money类和其子类Coin类

Luz3年前 (2022-05-26)题库604
设计一个Money类:

定义一个整型变量value,表示钱币的面值。
设计一个带有value值的构造方法;
设计一个getValue()方法获取钱币面值;
设计一个toString()方法输出钱币面值。

设计一个Coin类,该类继承自Money类,

定义一个实例变量face表示硬币的当前状态,值为1表示正面朝上,值为0表示正面朝下。
定义一个静态变量number表示硬币正面朝上的次数。
设计一个flip()方法,通过随机选择数字0或1来确定硬币的新状态。如下所示:

face =(int) (Math.random() * 2)

设计一个带有value值的构造方法,并通过调用flip方法抛硬币。
设计一个isHead()方法通过face值来判断硬币是哪一面朝上,返回true表示正面朝上,返回false表示正面朝下
设计一个toString方法返回表示当前硬币面值和正面朝上还是朝下的字符串。
设计printNumber()方法输出硬币正面朝上的总次数。

如下所示为测试程序,创建一个硬币实例,然后抛掷硬币十次,输出每次抛掷硬币的状态,最后输出正面朝上的次数。

public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Coin c = new Coin(1);
for (int i = 0;i < 10; i++) {
c.flip();
System.out.println(c);
}
Coin.printNumbers();
}
}


输出结果示例如下:

钱的面值为:1, 正面朝上
钱的面值为:1, 正面朝上
钱的面值为:1, 正面朝上
钱的面值为:1, 正面朝下
钱的面值为:1, 正面朝上
钱的面值为:1, 正面朝上
钱的面值为:1, 正面朝上
钱的面值为:1, 正面朝上
钱的面值为:1, 正面朝下
钱的面值为:1, 正面朝下
正面朝上的总次数为:7









答案:参考答案:

class Money{ // 1分
private int value; // 1分
public Money(int value) { // 2分
this.value = value;
}
public int getValue() { // 1分
return value;
}

@Override
public String toString() { // 1分
return "钱的面值为:" + value;
}
}
class Coin extends Money{ //2分
private int face; //1分
private static int numbers; //1分
public Coin(int value) { //2分
super(value);
flip();
}
public void flip() { //2分
face =(int) (Math.random() * 2);
if (face==1)
numbers++;
}
public boolean isHead() { // 2分
if (face==1)
return true;
else
return false;
}
public String toString() { //2分
return super.toString() +", " + ((isHead())?"正面朝上":"正面朝下");
}
public static void printNumbers() { //2分
System.out.println("正面朝上的总次数为:" + numbers);
}
}



发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。