需要有关方法调用的语法建议
Need syntax advice on method calling
我需要一点帮助来获得调用方法的正确语法。名为 "Die" 的 class 有一个名为 getImage() 的方法。它的工作是构建一个 JLabel 并且在这样做时它应该在一个名为 "PairOfDice."
的 class 中调用 getDie1Image()
getDie1Image() 的工作是 select 六张死脸图像之一,并在调用时 return 它。目前,我收到一条错误消息:"The method getDie1Image() is undefined for the type Die."
是的,这是学校作业,所以我应该只在这一点上寻求帮助。谢谢
这是来自Die.java
的片段
public static void getImage()
{
JLabel face1, face2;
face1 = new JLabel(" ", getDie1Image(), SwingConstants.CENTER);
face2 = new JLabel(" ", getDie2Image(), SwingConstants.CENTER);
}
这是来自PairOfDice.java
的片段
public ImageIcon getDie1Image()
{
int cube = die1.roll(); // returns int value 1-6
ImageIcon face = null;
switch(cube)
{
case 1:
ImageIcon face1 = new ImageIcon("Die_Face_1.png");
face = face1;
break;
case 2:
ImageIcon face2 = new ImageIcon("Die_Face_2.png");
face = face2;
break;
case 3:
ImageIcon face3 = new ImageIcon("Die_Face_3.png");
face = face3;
break;
case 4:
ImageIcon face4 = new ImageIcon("Die_Face_4.png");
face = face4;
break;
case 5:
ImageIcon face5 = new ImageIcon("Die_Face_5.png");
face = face5;
break;
case 6:
ImageIcon face6 = new ImageIcon("Die_Face_6.png");
face = face6;
default:
}
return face;
}
根据您的描述,您的 getDie1Image()
方法似乎是 `PairOfDice' class 的 public 成员函数。这意味着您需要在 class 中创建一个 PairOfDice 对象。您的新代码应如下所示:
public static void getImage()
{
PairOfDice pod = new PairOfDice();
JLabel face1 = new JLabel(" ", pod.getDie1Image(), SwingConstants.CENTER);
JLabel face2 = new JLabel(" ", pod.getDie2Image(), SwingConstants.CENTER);
}
请记住,在 Java 中,您只能通过创建 class 的实例并像这样访问其成员来调用其他 class 的 public 成员函数:
SomeClass sc = new SomeClass();
sc.my_pub_member_fxn();
如果 public 方法也是静态的,则不需要创建 class 的实例,因为静态方法属于 class 本身,而不是 class 的实例class。那么您的代码将是:
SomeClass.my_pub_member_fxn();
我需要一点帮助来获得调用方法的正确语法。名为 "Die" 的 class 有一个名为 getImage() 的方法。它的工作是构建一个 JLabel 并且在这样做时它应该在一个名为 "PairOfDice."
的 class 中调用 getDie1Image()getDie1Image() 的工作是 select 六张死脸图像之一,并在调用时 return 它。目前,我收到一条错误消息:"The method getDie1Image() is undefined for the type Die."
是的,这是学校作业,所以我应该只在这一点上寻求帮助。谢谢
这是来自Die.java
的片段public static void getImage()
{
JLabel face1, face2;
face1 = new JLabel(" ", getDie1Image(), SwingConstants.CENTER);
face2 = new JLabel(" ", getDie2Image(), SwingConstants.CENTER);
}
这是来自PairOfDice.java
的片段public ImageIcon getDie1Image()
{
int cube = die1.roll(); // returns int value 1-6
ImageIcon face = null;
switch(cube)
{
case 1:
ImageIcon face1 = new ImageIcon("Die_Face_1.png");
face = face1;
break;
case 2:
ImageIcon face2 = new ImageIcon("Die_Face_2.png");
face = face2;
break;
case 3:
ImageIcon face3 = new ImageIcon("Die_Face_3.png");
face = face3;
break;
case 4:
ImageIcon face4 = new ImageIcon("Die_Face_4.png");
face = face4;
break;
case 5:
ImageIcon face5 = new ImageIcon("Die_Face_5.png");
face = face5;
break;
case 6:
ImageIcon face6 = new ImageIcon("Die_Face_6.png");
face = face6;
default:
}
return face;
}
根据您的描述,您的 getDie1Image()
方法似乎是 `PairOfDice' class 的 public 成员函数。这意味着您需要在 class 中创建一个 PairOfDice 对象。您的新代码应如下所示:
public static void getImage()
{
PairOfDice pod = new PairOfDice();
JLabel face1 = new JLabel(" ", pod.getDie1Image(), SwingConstants.CENTER);
JLabel face2 = new JLabel(" ", pod.getDie2Image(), SwingConstants.CENTER);
}
请记住,在 Java 中,您只能通过创建 class 的实例并像这样访问其成员来调用其他 class 的 public 成员函数:
SomeClass sc = new SomeClass();
sc.my_pub_member_fxn();
如果 public 方法也是静态的,则不需要创建 class 的实例,因为静态方法属于 class 本身,而不是 class 的实例class。那么您的代码将是:
SomeClass.my_pub_member_fxn();