-2

它说数字 125,100 是以下行中的不兼容类型: _die1 = newDie(125,100);

我不明白,因为在 NewDie 方法中它需要 int 2 int,所以它应该可以正常工作......?!基本上这个程序创建骰子卷,我试图让它显示卷#2

 import java.awt.*;  
// The panel which holds the two dice
import javax.swing.*;
public class DicePanel extends JPanel
{
// instance variables 
private Die _die1, _die2;
private int _roll;


/**
 * Constructor for objects of class DicePanel
 */
public DicePanel()
{
    // initialise instance variables
    super();
    setBackground(Color.GRAY);



    _die1 = new Die(125,100);
    _die2 = new Die(250,100);



    roll();
}
// display the dice in the panel
public void paintComponent(Graphics pen)
{
    super.paintComponent(pen);
    Graphics2D aBetterPen = (Graphics2D)pen;
    _die1.paint(aBetterPen);
    _die2.paint(aBetterPen);



}
// roll both dice and display them
public void roll()
{


   // _die1 = new Two(125,100);
   // _die2 = new Three(250,100);

    _die1 = newDie(125,100); 
   // _die2 = DicePanel.newDie(250,100);
   //repaint();
}
// retrieve the value of each die
public int getDie1()
{
    return _die1.getValue();
}
public int getDie2()
{
    return _die2.getValue();
}

// factory method for a die
public void newDie(int x, int y){

    //_roll = randomNumber(1,6);

    _die1 = new Two(x,y);
    // _die2 = new Three(x,y);

}
// random number generator to return and integer between two integers, inclusive.
public static int randomNumber(int low, int high){
    return low + (int)(Math.random()*(high-low+1));
}

}

4

2 回答 2

3

newDie返回void显然与_die' 类型的 Die 不兼容。

于 2013-06-28T00:24:57.130 回答
1

没有一行说newDie(125,100). 然而,有一句话说new Die(125,100)......这意味着一些非常不同的东西。它是构造函数调用而不是方法调用。

所以要么:

  • 您正在调用该newDie方法,它正在抱怨,因为newDie返回void,或

  • 您正在调用 Die 构造函数,new Die(125, 100)并且形式参数类型和实际参数类型不匹配。

鉴于错误消息抱怨125and 100,我认为第二种解释更有可能。但是你没有Die在你的问题中包含构造函数声明,所以我不能确定。


我还应该补充一点_die1_die2并且_roll是根据大多数Java 编码风格的编码风格违规......尤其是 Oracle 推荐的编码风格。您有充分的理由与众不同(个人偏好不是一个很好的理由),那么您应该编写 Java 代码以符合主流风格。

您的代码缩进也与我见过的任何编码风格不一致......也应该修复。

如果您编写代码纯粹是为了自己的利益,而没有其他人需要阅读它,那么您的代码风格就是您自己的事。但是,如果您希望任何人(例如您的讲师、您的同事、StackExchange 读者)阅读它,那么风格很重要

于 2013-06-28T00:35:57.553 回答