【问题标题】:Calling Code From Other Classes从其他类调用代码
【发布时间】:2013-08-15 19:15:26
【问题描述】:

嗨,我是 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

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

【问题讨论】:

标签: java class if-statement


【解决方案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
}

【讨论】:

  • 我将它嵌入到我的代码中,它给了我错误消息“Class Train 是公共的,应该在名为 Train.java 的文件中声明”
  • 如果你的文件名是 Train.java 你的类名应该是 Train
  • no 我的文件名为 Attributes。 java 因为早先的类似错误
  • 如果你想调用一个静态方法,你应该这样做 - ClassName.MethodName()
  • 谢谢我看看
【解决方案2】:

我建议不要使用 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;等等

【讨论】:

  • 谢谢,这非常有用 XD
【解决方案3】:

如果您尝试调用静态方法,只需执行以下操作即可。

train.doStuff();

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

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

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

【讨论】:

    【解决方案4】:

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

    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");
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 2013-07-20
      相关资源
      最近更新 更多