[英]How to create a static method in a non-static class
“使用
main()
方法编写一个DieTester
类,该类创建两个模具对象,掷两个骰子,打印每个骰子的值,将掷骰的总和存储在变量中,然后打印变量。如果die的值相等,则调用一个名为
getMessage()
的方法,以总和作为输入(见下文),并打印返回的String。编写一个称为
getMessage()
的static
方法,该方法将总和(一个整数)作为输入。 该方法返回与对应于给定总和的表相对应的字符串。”
我的问题是,如何在非静态类内部创建静态方法? 我无法一辈子将其编译起来,而且我知道它必须是我不了解的简单事物。
我仅指的是getMessage()
方法,而不是其余的代码。
更新:修复并完美运行。 必须将getMessage()
方法与main()
方法分开,然后用整数和字符串修复一些错误。 还添加了一个if语句,以根据管芯是否彼此相等将输出打印为字符串。
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;
}
}
}
只需将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()
放在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;
}
}
编写一个名为getMessage的静态方法
好了,您得到了该public static int getMessage()
将总和(整数)作为输入
糟糕,不太...您需要输入int的参数。
该方法返回一个字符串
返回String
,而不是int
。 更改您的方法类型。
打印返回的字符串
您可以只return "something";
而不是break
,那么您实际上可以“打印返回的消息”
System.out.println(getMessage(sum))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.