Podemos sobrecargar un main() método en Java?

  • ¿Por qué quieres sobrecargar el método main (). Usted puede crear tantas clases como desee con un main() si desea inicio diferente comportamiento. Sólo el estado de la clase principal cuando se invoca el frasco. O usted podría agregar algo más de arg que se prueba cuando su principal empieza que afecta a lo que hace.
InformationsquelleAutor Mohan | 2010-09-21

14 Comentarios

  1. 125

    Que puede sobrecarga de la main() método, pero sólo public static void main(String[] args) será utilizado cuando la clase se lanzó por la JVM. Por ejemplo:

    public class Test {
        public static void main(String[] args) {
            System.out.println("main(String[] args)");
        }
    
        public static void main(String arg1) {
            System.out.println("main(String arg1)");
        }
    
        public static void main(String arg1, String arg2) {
            System.out.println("main(String arg1, String arg2)");
        }
    }

    Que siempre de impresión main(String[] args) cuando se ejecuta java Test ... desde la línea de comandos, incluso si se especifica uno o dos argumentos de línea de comandos.

    Usted puede llamar a la main() método de sí mismo a partir de un código, de curso – en el que el normal de la sobrecarga de reglas se aplicarán.

    EDICIÓN: tenga en cuenta que usted puede utilizar un varargs de la firma, ya que es equivalente, desde un punto de vista de la JVM:

    public static void main(String... args)
    • Por la JVM, para ser precisos – que uno puede llamar a cualquier versión sobrecargada de forma manual.
    • Ya que siempre la impresión main(String[] args) valor en consola me pasó argumentos en línea de comandos.Entonces, ¿cuál es el uso de main() sobrecarga.
    • Al igual que cualquier otro método. Usted puede llamar a main() de otras partes de su código.
    • ¿qué sucede si mi método sobrecargado ha Object[] arg. Donde la ejecución se inicia a partir de ? public static void main(Object[] obj){….}
    • No, todavía String[]. Esa es la solo de la firma de la cual es reconocida como un punto de entrada.
    • no String... (equivalente a String[]) también se reconoce como un punto de entrada?
    • Sí, pero yo diría que eso es un equivalente de la firma, a diferencia de los otros que se sugiere. Voy a editar para aclarar.
    • la razón detrás de «sólo public static void main(String[] args) se utilizará cuando la clase se lanzó por la JVM.»
    • Bueno, eso es lo que la especificación dice… si usted proporcionó una firma diferente (por ejemplo, una con su propia clase como uno de los parámetros) ¿cómo sería la JVM saber qué argumentos para proporcionar?
    • Gracias hombre!! un placer para mí recibir respuesta de ustedes 🙂
    • Es allí cualquier uso de la sobrecarga de método main? ¿Por qué nos sobrecargar el método main si java siempre se ejecuta main(String[] args)?
    • Yo no puede ver mucho en la forma de un propósito, pero igualmente sería extraño evitar el la sobrecarga. No olvides que la main método puede ser invocado directamente de otro código, así que no es como tal una sobrecarga serían inaccesibles.
    • Tengo el punto. Gracias por tu respuesta!

  2. 15

    Sí, puede sobrecargar principal método en Java. Pero el programa no se ejecuta la sobrecarga principal método cuando se ejecuta el programa, usted tiene que llamar a la sobrecarga método principal de la real método main.

    que significa método principal actúa como un punto de entrada para el intérprete de java para iniciar la ejecución de la aplicación.
    donde como carga principal necesidad para ser llamado desde main.

    • Bonita respuesta. Gracias. 🙂
    • Gran respuesta, pero incluso la JVM no puede vencer a Skeet.
  3. 4

    Sí, por la sobrecarga de métodos. Usted puede tener cualquier número de los principales métodos en una clase por la sobrecarga de métodos. Vamos a ver el ejemplo simple:

    class Simple{  
      public static void main(int a){  
      System.out.println(a);  
      }  
    
      public static void main(String args[]){  
      System.out.println("main() method invoked");  
      main(10);  
      }  
    }  

    Se le dará el siguiente resultado:

    main() method invoked
    10
  4. 3

    SÍ, puede sobrecargar main()

    Pero para ser claros —
    aunque puede sobrecargar principal, sólo la versión con la estándar de firma será ejecutable de la aplicación desde la línea de comandos. e.g

    public static void main(String[] args,int a){
    //some code
    }
    2)public static void main(String[] args){//JVM will call this method to start 
    //some code 
    }
  5. 2

    Sí, puede sobrecargar principal método en Java. usted tiene que llamar a la sobrecarga método principal de la real método main.

  6. 2

    Sí, el principal método puede ser sobrecargado. Sobrecargado principal método debe ser llamado desde el interior de la «public static void main(String args [])», ya que este es el punto de entrada cuando la clase se inicia por la JVM. También sobrecargado principal método puede tener cualquier calificador como un método normal tener.

  7. 2

    Sí, se puede.

    La main método en Java no es de extra-terrestres método. Aparte del hecho de que main() es igual que cualquier otro método de & puede ser sobrecargado de una manera similar, JVM busca siempre el método de la firma para lanzar el programa.

    • La normal main método actúa como un punto de entrada para la JVM para empezar
      la ejecución del programa.

    • Podemos sobrecargar el main método en Java. Pero el programa no

      ejecutar la sobrecarga main método cuando se ejecute el programa, necesitamos
      para llamar a la sobrecarga main método de la real principal método sólo.

      //A Java program with overloaded main()
      import java.io.*;     
      public class Test {         
        //Normal main()
        public static void main(String[] args) {
          System.out.println("Hi Geek (from main)");
          Test.main("Geek");
        }     
        //Overloaded main methods
        public static void main(String arg1) {
          System.out.println("Hi, " + arg1);
          Test.main("Dear Geek","My Geek");
        }
        public static void main(String arg1, String arg2) {
          System.out.println("Hi, " + arg1 + ", " + arg2);
        }
      }

      Válido variantes de main() en Java

  8. 1

    sí podemos sobrecarga del método main. principal método no debe ser estático método main.

  9. 1

    Esto es perfectamente legal:

    public static void main(String[] args) {
    
    }
    
    public static void main(String argv) {
        System.out.println("hello");
    }
  10. 1

    Sí. ‘main( )’ método puede ser sobrecargado. He intentado poner en alguna pieza de código para responder a su pregunta.

    public class Test{
    static public void main( String [] args )
            {
                    System.out.println( "In the JVMs static main" );
                    main( 5, 6, 7 );    //Calling overloaded static main method
                    Test t = new Test( );
                    String [] message  = { "Subhash", "Loves", "Programming" };
                    t.main(5);
                    t.main( 6, message );
            }
    
            public static void main( int ... args )
            {
                    System.out.println( "In the static main called by JVM's main" );
                    for( int val : args )
                    {
                            System.out.println( val );
                    }
            }
    
            public void main( int x )
            {
                    System.out.println( "1: In the overloaded  non-static main with int with value " + x );
            }
    
            public void main( int x, String [] args )
            {
                    System.out.println( "2: In the overloaded  non-static main with int with value " + x );
                    for ( String val : args )
                    {
                            System.out.println( val );
                    }
            }
    }

    De salida:

    $ java Test
    In the JVMs static main
    In the static main called by JVM's main
    5
    6
    7
    1: In the overloaded  non-static main with int with value 5
    2: In the overloaded  non-static main with int with value 6
    Subhash
    Loves
    Programming
    $

    En el código anterior, tanto de forma estática-método así como un no-versión estática de los principales métodos están sobrecargados para fines de demostración. Tenga en cuenta que, por escrito Jvm principal, quiero decir, que es el principal método que JVM utiliza para ejecutar un programa.

  11. 1

    Sí,u puede sobrecargar un método main, pero el intérprete siempre la búsqueda de la correcta principal método de sintaxis para comenzar la ejecución..
    Y sí, tienes que llamar a la sobrecarga principal método con la ayuda de objeto.

    class Sample{
    public void main(int a,int b){
    System.out.println("The value of a is "  +a);
    }
    public static void main(String args[]){
    System.out.println("We r in main method");
    Sample obj=new Sample();
    obj.main(5,4);
    main(3);
    }
    public static void main(int c){
    System.out.println("The value of c  is"  +c);
    }
    }
    
    The output of the program is:
    We r in main method
    The value of a is 5
    The value of c is 3
  12. 1

    Sí de Acuerdo a mi punto de vista, somos capaces de sobrecargar el método main, pero la sobrecarga de método que es. Por Ejemplo

    class main_overload {
        public static void main(int a) {
            System.out.println(a);
        }
        public static void main(String args[]) {
            System.out.println("That's My Main Function");
            main(100);
        }
    }

    De Este Doble barra diagonal inversa Paso, me acaba de llamar el método main….

  13. 1

    Sí un método main puede ser sobrecargado como otras funciones, pueden ser sobrecargados.Una cosa que hay que cuidar es que no debe ser de al menos uno de los principales de la función con «String args[] » como argumentos .Y puede haber cualquier número de funciones principales en su programa con diferentes argumentos y funcionalidad.Permite comprender a través de un sencillo ejemplo:

    Class A{
    
    public static void main(String[] args)
    {
    System.out.println("This is the main function ");
    A object= new A();
    object.main("Hi this is overloaded function");//Calling the main function
    }
    
    public static void main(String argu)     //duplicate main function
    {
    System.out.println("main(String argu)");
    }
    }

    De salida:
    Esta es la principal función

    Hola esta es una función sobrecargada

  14. 0

    Sí se puede Sobrecargar un método main pero no debe ser sólo un método con la firma public static void main(string args[])

    package rh1;
    
    public class someClass 
    {
    
        public static void main(String... args)
        {
            System.out.println("Hello world");
    
            main("d");
            main(10);
        }
        public static void main(int s)
        {
    
            System.out.println("Beautiful world");
        }
        public static void main(String s)
        {
            System.out.println("Bye world");
        }
    }

Dejar respuesta

Please enter your comment!
Please enter your name here