2017-02-13 75 views
0

创建静态方法“写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; 

     } 
    } 
} 
+1

你已经有一个静态方法:'公static void main(String [] args)'。如果你想添加另一种方法,你必须把它放在类中,而不是放在主要方法中。 –

+3

'main()'是一种方法(静态与这一点无关)。 '类DieTester2'是一类。方法在类内而不是其他方法。 –

+1

'main()'不是一个静态类。这是你的类DieTester2中的静态方法。 – shmosel

回答

0

您可以按照以下结构:只要把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; 
    } 
} 
0

只要保持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; 

      } 

    } 
0

编写一个叫做的getMessage

好的静态方法,你得到了public static int getMessage()

,是以总和(整数)作为输入

哎呀,不完全...你需要一个输入参数吨。

该方法返回一个字符串

返回String,不int。改变你的方法类型。

打印字符串返回

能的break你刚才return "something";代替,然后你其实可以“打印信息返回”

System.out.println(getMessage(sum))