CJHCW 2016-10-19 08:38 采纳率: 0%
浏览 1362

"main" java.lang.NullPointerException

//四、用Java实现掷骰子游戏:丢下两个骰子,若分值的总值为7点,则赢;否则输。
//编写步骤如下:
//(1)首先定义Dice类。
//提示:Dice类表示一个骰子有faceValue一个属性,为整型;
//有一个roll()方法和getFaceValue()。
//roll()方法功能使faceValue属性设置为1~6中的一个随机值,没有返回值。
//getFaceValue()方法功能为取出faceValue值。
//Math.random()方法是求随机数,返回值为double类型,值的范围为0.0~1.0
//(2)然后定义DiceGame类。
//提示:DiceGame类有dice1、dice2两个属性,类型分别为Dice类类型,有一个play()方法。
//play()方法返回一个布尔类型,true表示丢下两个骰子分值的总值为7点,否则为false。
//(3)最后编写一个测试类Test,对上面定义的类进行测试。
//提示: main()方法中产生DiceGame对象,执行play()方法后显示出输赢。
class Dice{
private int faceValue;
public void roll(){
faceValue=(int)(6*Math.random());
}
public int getFaceValue(){
return faceValue;
}
}
class DiceGame extends Dice{
private Dice dice1;
private Dice dice2;
public boolean play(){
dice1.roll();
dice2.roll();
if(dice1.getFaceValue()+dice2.getFaceValue()==7){
System.out.println("赢了!");
return true;
}
else {
System.out.println("输了!");
return false;
}
}
}
public class Test{
public static void main(String[] args){
DiceGame one=new DiceGame();
one.play();
}
}
请问大神错在哪?
错在27和42行

  • 写回答

3条回答 默认 最新

  • #朱守成# 2016-10-19 09:10
    关注

    main方法中执行one.play(); 但是你的play()方法里执行了dice1.roll()和dice2.roll(),可是你现在还没有实例化出dice1和dice2两个对象啊,肯定报空指针异常了图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料