Multiple main() methods in java

后端 未结 10 626
忘了有多久
忘了有多久 2020-12-28 08:53

I was wondering what the effect of creating extra main methods would do to your code.

For example,

public class TestClass {
    public static void ma         


        
10条回答
  •  天涯浪人
    2020-12-28 09:15

    Another interesting point to consider is a case where you have two different classes in of java file.

    For example, you have Java file with two classes:

    public class FirstClassMultiply {
    
        public static void main (String args[]){
            System.out.println("Using FirstClassMultiply");
            FirstClassMultiply mult = new FirstClassMultiply();
            System.out.println("Multiple is :" + mult.multiply(2, 4));
        }
        public static void main (int i){
            System.out.println("Using FirstClassMultiply with integer argument");
            FirstClassMultiply mult = new FirstClassMultiply();
            System.out.println("Multiply is :" + mult.multiply(2, 5));
        }
    
        int multiply(int a, int b) {
            return (a * b);
        }
    }
    
    class SecondClass {
    
        public static void main(String args[]) {
            System.out.println("Using SecondClass");
    
            FirstClassMultiply mult = new FirstClassMultiply();
            System.out.println("Multiply is :" + mult.multiply(2, 3));
    
            FirstClassMultiply.main(null);
            FirstClassMultiply.main(1);
        }
    }
    

    Compiling it with javac FirstClassMultiply.java will generate two .class files, first one is FirstClassMultiply.class and second one is SecondClass.class

    And in order to run it you will need to do it for the generated .class files: java FirstClassMultiply and java SecondClass, not the original filename file.

    Please note a couple of additional points:

    1. You will be able to run SecondClass.class although it's class wasn't public in the original file!
    2. FirstClassMultiply overloading of the main method of is totally fine, but, the only entry point to your prog will be the main method with String args[] argument.

提交回复
热议问题