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 è quello che dovrebbe essere nel principale? E quali sono le sue responsabilità?
Può succedere che qualcosa di scritto nel principale possa essere incapsulato in un altro oggetto, ma quanto dovresti usare questo approccio?
Ecco il mio primo principale che ho scritto in Java, è molto semplice ma può farti capire meglio i miei dubbi. Ho un animale di classe astratta che è esteso da "Gatto" e "Cane". Ho usato il main per creare un oggetto e anche come "interfaccia" con l'utente, infatti 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 quella 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);
}
main
funzione non è un concetto di OOP.