Sono nuovo nella programmazione orientata agli oggetti e non capisco quale sia lo scopo principale.
Sì, ho letto che è il "punto di ingresso" del programma, ma quello che non capisco è ciò che dovrebbe essere nel principale? E quali sono le sue responsabilità?
Può succedere che qualcosa scritto nel main possa essere incapsulato in un altro oggetto, ma quanto dovresti usare questo approccio?
Ecco il mio primissimo principio che ho scritto in Java, è molto semplice ma potrebbe farti capire meglio il mio dubbio. Ho una classe astratta Animal che è estesa da "Cat" e "Dog". Ho usato il main per creare qualche oggetto e anche come "interfaccia" con l'utente, anzi come puoi vedere ho usato alcune istruzioni condizionali per "chiedere all'utente" cosa vuole fare.
La mia domanda è nata dal fatto che l'interfaccia potrebbe essere incapsulata in un altro oggetto e non dare tale responsabilità al principale.
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);
}