¿Cuál sería el lugar indicado para usar las funciones, arriba o abajo del main?

Pregunta de la clase:
Implementa Funciones en Java
Luis Tapia

Luis Tapia

Pregunta
studenthace 5 años

¿Cuál sería el lugar indicado para usar las funciones, arriba o abajo del main?

3 respuestas
para escribir tu comentario
    Sanders Gutiérrez

    Sanders Gutiérrez

    studenthace 5 años

    Un ejemplo de lo que dije en el otro comentario.

    Supón que tienes una clase que emite un saludo.

    Archivo

    Saludador.java

    public class Saludador { private String sujeto; /** * Constructor vacío por si quieres instanciar la clase * sin inicializar ninguna propiedad. * @return Saludador */ public Saludador() { } /** * Constructor con parámetro por si quieres darle * un valor inicial a la propiedad sujeto * @param sujeto * @return Saludador */ public Saludador(String sujeto) { this.sujeto = sujeto; } /** * Método para obtener el valor de la propierdad * sujeto desde fuera de la clase. * @return String */ public String getSujeto() { return sujeto; } /** * Método para asignar valor a la propiedad * sujeto desde fuera de la clase. * @param sujeto * @return void */ public void setSujeto(String sujeto) { this.sujeto = sujeto; } /** * Emite un mensaje de saludo o despedida a un sujeto cualquiera. * @param mensaje * @return String */ public String saludar(String mensaje) { if (this.getSujeto() == null) { this.setSujeto("Mundo"); } return mensaje.concat(" ").concat(this.sujeto); } }

    Archivo

    Main.java
    clase principal que contiene el método main

    public class Main { public static void main(String[] args) { /* * Primera forma de llamar pasando como argumento un sujeto al que se va saludar */ Saludador saludador = new Saludador("Mundo"); System.out.println(saludador.saludar("Hola")); /* * Segunda forma de llamar usando el setter de la clase Saludador * para establecer el valor de la propiedad. Esta vez la instancia de * la clase no recibe ningún argumento, así podremos asignar el * sujeto al que se quiere saludar mediante el método setSujeto */ Saludador saludador2 = new Saludador(); saludador2.setSujeto("Sanders"); System.out.println(saludador2.saludar("Adiós")); } }

    Lo importante de esto es lo siguiente:

    Para compilar el código debes usar el compilador de Java "

    javac
    "

    cd path_to_project # Esto va generar un archivo Saludador.class javac Saludador.java

    El archivo

    Saludador.class
    que se genera puedes ejecutarlo con la JVM de Java "
    java
    "

    # Va sin la extension .class java ya sabe que extensión debería llevar para ejecutarlo. java Saludador

    Si me seguiste hasta aquí te darás cuenta que debió mostrarte en la terminal un mensaje parecido a este...

    Error: Main method not found in class Saludador, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application

    eso sucede porque la clase

    Saludador.java
    no tiene un método main por lo tanto la JVM no sabe como iniciar el programa. Ahora si por el contrario haces lo mismo con la clase
    Main.java
    vas a obtener un resultado diferente. Veamos...

    cd path_to_project # Compilar la clase `Main.java` que producirá un archivo `Main.class`, tal como sucedió antes javac Main.java

    Entonces ejecutamos la clase

    Main.class

    java Main

    Eso debería darte una salida parecida a esta si no cambiaste el mensaje ni el sujeto.

    Hola Mundo Adiós Mundo
    Sanders Gutiérrez

    Sanders Gutiérrez

    studenthace 5 años

    No importa en qué punto del programa esté, ya que el JRE cuando ejecuta tu programa lo que hará es escanear tu código en busca del método main el cuál es el mecanismo mediante el que java sabe por donde inicia la ejecución de tu programa. Por lo tanto da igual si lo pones arriba abajo en medio o donde sea, lo importante es que en el flujo de ejecución de tu programa se vaya llamando conforme la lógica de tu programa.

    Cualquier clase que crees y no tenga un método main no se va ejecutar nada hasta que explícitamente le digas a la JVM cómo encontrar el punto de entrada a tu programa.

    Es como si invitaras a tu novia a casa pero nunca le abres la puerta.

    Jose Enrique Valenzuela

    Jose Enrique Valenzuela

    studenthace 5 años

    Buenas noches para serte honesto la funciones tienen que ir en otra clase en metodo main tienes que crear el objeto cuando creas el objeto en el metodo main solo lo tines que madar a llamar por ejemplo

    public int sumar(int a , int b){ return a+b; } //metodo main public static void main(String[]args){ Suma sm=new Suma(); int resultado =sm(10+10); }
Curso de Introducción a Java SE

Curso de Introducción a Java SE

Java es un lenguaje de programación con el que puedes desarrollar software multiplataforma gracias a la JVM (Máquina Virtual de Java). Aprende las características fundamentales del lenguaje y desarrolla tus propios proyectos.

Curso de Introducción a Java SE
Curso de Introducción a Java SE

Curso de Introducción a Java SE

Java es un lenguaje de programación con el que puedes desarrollar software multiplataforma gracias a la JVM (Máquina Virtual de Java). Aprende las características fundamentales del lenguaje y desarrolla tus propios proyectos.