Java多个类和多个主要方法,执行所有主要方法

时间:2017-10-17 19:42:47

标签: java class main

我是Java的新手,我刚刚编写了一些代码,其中我使用了两个带有main方法的类。 我喜欢一个接一个地执行两个主要方法。是否有可能以指定的顺序同时执行它们?

imFirst.java

// obj.value = '?V6I0S7I5*5O5S1F2C[]3U4!'; 
function exampleFunction(obj) { 
    var val = obj.value.replace(/\D/g, ''), 
        char = {3:'-',6:'-'}, tmp=''; 
    for (var i = 0; i < val.length; i++) { 
        tmp += (char[i]||'') + val[i]; 
    } 
    obj.value=tmp; 
} 

imSecond.java

public class imFirst {
    public static void main(String[] args) {
        System.out.println("I want to be the first one executed!");
    }
}

这些是在一个包中,通过eclipse执行。

2 个答案:

答案 0 :(得分:2)

你可以从imFirst调用imSecond的主要内容:

public class imFirst {
    public static void main(String[] args) {
        System.out.println("I want to be the first one executed!");
        imSecond.main(args);
    }
}

或者可以相反:

public class imSecond {
    public static void main(String[] args) {
        System.out.println("I want to be the second one executed!");
        imFirst.main(args);
    }
}

根据您的需要做。但是不要同时做这两件事,否则你可以得到两种方法互相呼唤的无限循环。

作为旁注:使用适当的java命名约定。类名应为CamelCase。

答案 1 :(得分:1)

快速修复

您也可以像其他常规方法一样调用main - 方法:

public static void main(String[] args) {
    imFirst.main(null);
    imSecond.main(null);
}

更好的方法

但你首先应该想到为什么你甚至需要两种主要方法main方法是整个Java链中的第一个方法,通常只对每个完整的程序使用一个。目的是简单地启动程序,大多数情况下它只是调用专用类,如:

public static void main(String[] args) {
    ProgramXY programXY = new ProgramXY();
    programXY.init();
    programXY.start();
}

所以我建议你简单地将两个print语句移动到自己的类和方法中,然后只需从一个主要方法中调用它们:

实用程序类:

public class ConsolePrinter {
    public static void println(String line) {
        System.out.println(line);
    }
}

唯一的主要方法:

public static void main(String[] args) {
    ConsolePrinter.println("I want to be the first one executed!");
    ConsolePrinter.println("I want to be the second one executed!");
}

更一般

或者为了更通用的目的:

头等舱:

public class FirstClass {
    public void firstMethod() {
        // ...
    }
}

第二课:

public class SecondClass {
    public void secondMethod() {
        // ...
    }
}

唯一的主要方法:

public static void main(String[] args) {
    FirstClass first = new FirstClass();
    SecondClass second = new SecondClass();

    first.firstMethod();
    second.secondMethod();
}