Soy nuevo en la programación orientada a objetos y no entiendo cuál es el propósito de main.
Sí, leí que es el "punto de entrada" del programa, pero lo que no entiendo es ¿qué debería ser lo principal? ¿Y cuáles son sus responsabilidades?
Puede suceder que algo escrito en el main pueda encapsularse en otro objeto, pero ¿cuánto debe usar este enfoque?
Aquí está mi primer main que escribí en Java, es muy simple pero puede hacerte entender mejor mis dudas. Tengo una clase abstracta Animal que se extiende por "Cat" y "Dog". Usé el principal para crear algún objeto y también como una "interfaz" con el usuario, de hecho, como puede ver, usé algunas instrucciones condicionales para "preguntarle al usuario" qué quiere hacer.
Mi pregunta surgió del hecho de que la interfaz podría encapsularse en otro objeto y no dar esa responsabilidad al principal.
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("What type of animal do you want to create? \n dog cat");
String type = input.nextLine();
if ( Objects.equals(type, "dog")){
System.out.println("Enter the animal's age: ");
int age = input.nextInt(); // Scans the next token of the input as an int.
System.out.println("Enter the animal's name: ");
String name = input.next();
Dog first = new Dog(name, age);
}
else if ( Objects.equals(type, "cat")) {
System.out.println("Enter the animal's age: ");
int age = input.nextInt(); // Scans the next token of the input as an int.
System.out.println("Enter the animal's name: ");
String name = input.next();
Cat first = new Cat(name, age);
}
else{
System.out.println("Error: the specified type does not exist.");
}
System.out.println("The number of animals is:" + numberOfAnimals);
}
main
función no es un concepto de OOP.