0

嗨,我是 Java 初学者,所以没有复杂的代码等

基本上为了避免我的代码变得太长,我希望我的用户输入一个选择,然后我有一堆 for 和 elese 用于如果他们输入某个短语会发生什么,例如

if(choice.equals("Fight")) {
   //Grab code from fight.java/fight.class
}
else
{
    if(choice.equals("Train")) {
        //Grab code from train.java/train.class
    }
    else

对于其他两个可能的输入,依此类推。我只需要知道如何调用外部代码就不会太混乱。

4

4 回答 4

1

您应该创建这些类的对象。

例如:

if(choice.equals("Fight")) {
   //Grab code from fight.java/fight.class
   fight f = new fight();
   f.foo(); // A method
}else{
    if(choice.equals("Train")) {
        //Grab code from train.java/train.class
        train t = new train();
        t.foo(); // A method
    }
    //...
}

或者您可以尝试这样的静态方法:

public class train{
    public static void foo(){
        //...
    }
}

然后你就可以使用它了。

if(bool_expression){
    train.foo(); // foo is a static method
}
于 2013-08-15T19:22:41.893 回答
1

我建议不要使用 for else 结构,而是使用 switch 语句。这看起来像:

switch(choice){
    case"fight":
        Fight.kickHard();
        break;
    case"train":
        Train.run();
        break;
    default:
        Program.learn();
}

使用 switch 时不要忘记 break 语句。在我的示例中,我使用了类中的静态方法。通过进一步研究面向对象的设计,看看您是否可以为您的特定问题提出更简化的答案,您可能会得到很好的服务。需要使用 import 语句导入其他类。您需要查看 IDE 为您执行此操作的快捷方式,但这是一个相当基本的语句,例如 import my.package.Train; 等等

于 2013-08-15T19:34:39.910 回答
0

如果您尝试调用静态方法,那么执行以下操作很简单。

train.doStuff();

如果方法属于一个对象,您首先必须实例化一个对象才能访问其上的任何方法。

Train train = new Train();
train.doStuff();

注意:IDE 会自动为您链接这些类。否则,您必须首先通过添加“import somepackage.someclass ”来手动导入这些类。

于 2013-08-15T19:19:10.013 回答
0

首先关注你程序可以做的不同事情。将该代码放在一个方法中,其名称表明其意图:

private static void doWork(){
  System.out.println("Working");
}

private static void play(){
  System.out.println("Playing");
}

private static void sing(){
  System.out.println("Singing");
}

现在,您需要将这些绑定到用户的短语(假设 Java 7):

   switch(choice){
     case: "work"
       doWork();
       break;
     case: "play"
       play();
       break;
     case: "sing"
       sing();
       break;
     default:
       System.out.println("Unknown choice");
   }
于 2013-08-15T19:34:32.700 回答