从其他类调用代码

时间:2013-08-15 19:15:27

标签: java class if-statement

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

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

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 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

如果您尝试调用静态方法,则执行以下操作非常简单。

train.doStuff();

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

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

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

答案 3 :(得分: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");
   }