如何在非静态类
问题描述:
创建静态方法“写
DieTester
类与创建两个死 对象main()
方法,辊二者骰子,打印值的每个管芯,存储的总和 滚动在一个变量,并打印该变量。如何在非静态类如果模具具有相等的值,则调用名为
getMessage()
, 与总和作为输入方法(见下文)和打印返回的字符串。写称为的
static
方法0将总和(一个整数)作为输入。该方法返回对应于对应于给定总和 表中的字符串。”
我的问题是,如何创建一个非静态类的内部静态方法?我不能得到这个编译我的生活,我知道它必须是简单的东西,我只是不理解
我只是指getMessage()
方法,代码不休息
UPDATE:。固定的,可以正常使用。不得不从main()
方法分开getMessage()
方法,然后用整数和st修正一些错误戒指。还添加了一条if语句,根据die是否彼此相等来将输出打印为字符串。
public class DieTester2
{
public static void main(String[] args)
{
Die die1 = new Die();
Die die2 = new Die();
die1.setSides(6);
die2.setSides(6);
die1.roll();
System.out.println("Die 1: " + die1.getValue());
die2.roll();
System.out.println("Die 2: " + die2.getValue());
int sum = (die1.getValue() + die2.getValue());
System.out.println("Sum: " + sum);
if(die1.getValue() == die2.getValue())
{
System.out.println(getMessage(sum));
}
}
public static String getMessage(int sum) {
String message;
switch (sum)
{
case 2:
message = "Snake Eyes!";
break;
case 4:
message = "Four, the hard way!";
break;
case 6:
message = "Hard Six!";
break;
case 8:
message = "Eight, the hard way!";
break;
case 10:
message = "Hard Ten";
break;
case 12:
message = "Box Cars!";
break;
default:
message = "Something went wrong";
break;
}
return message;
}
}
}
答
您可以按照以下结构:只要把getMessage()
外main()
。
public class DieTester2{
public static void main(String[] args) {
// write your code here
if(die1.getValue() == die2.getValue()){
String message = getMessage(die1.getValue() + die2.getValue());
// do whatever you need to do with message
}
}
public static String getMessage(int sum) {
String message;
switch (sum){
case 2:
message = "Snake Eyes!";
break;
case 4:
message = "Four, the hard way!";
break;
case 6:
message = "Hard Six!";
break;
case 8:
message = "Eight, the hard way!";
break;
case 10:
message = "Hard Ten";
break;
case 12:
message = "Box Cars!";
break;
default:
message = "Something went wrong";
break;
}
return message;
}
}
答
只要保持public static int getMessage()
外main
。而且您应该使用String
作为返回类型并返回字符串。
public class DieTester2
{
public static void main(String[] args)
{
Die die1 = new Die();
Die die2 = new Die();
die1.setSides(6);
die2.setSides(6);
die1.roll();
System.out.println("Die 1: " + die1.getValue());
die2.roll();
System.out.println("Die 2: " + die2.getValue());
int sum = (die1.getValue() + die2.getValue());
System.out.println("Sum: " + sum);
}
public static int getMessage() {
int message = 0;
switch (message)
{
case 2:
System.out.println("Snake Eyes!");
break;
case 4:
System.out.println("Four, the hard way!");
break;
case 6:
System.out.println("Hard Six!");
break;
case 8:
System.out.println("Eight, the hard way!");
break;
case 10:
System.out.println("Hard Ten");
break;
case 12:
System.out.println("Box Cars!");
break;
default:
System.out.println("Something went wrong");
break;
}
return message;
}
}
答
编写一个叫做的getMessage
好的静态方法,你得到了public static int getMessage()
,是以总和(整数)作为输入
哎呀,不完全...你需要一个输入参数吨。
该方法返回一个字符串
返回String
,不int
。改变你的方法类型。
打印字符串返回
能的break
你刚才return "something";
代替,然后你其实可以“打印信息返回”
System.out.println(getMessage(sum))
你已经有一个静态方法:'公static void main(String [] args)'。如果你想添加另一种方法,你必须把它放在类中,而不是放在主要方法中。 –
'main()'是一种方法(静态与这一点无关)。 '类DieTester2'是一类。方法在类内而不是其他方法。 –
'main()'不是一个静态类。这是你的类DieTester2中的静态方法。 – shmosel