Eu sou novo em programação orientada a objetos e não entendo qual é o objetivo principal.
Sim, eu li que é o "ponto de entrada" do programa, mas o que eu não entendo é o que deve ser o principal? E quais são as suas responsabilidades?
Pode acontecer que algo escrito no principal possa ser encapsulado em outro objeto, mas quanto você deve usar essa abordagem?
Aqui está o meu primeiro artigo principal que escrevi em Java, é muito simples, mas pode fazer você entender melhor minha dúvida. Eu tenho uma classe abstrata Animal, que é estendida por "Cat" e "Dog". Eu usei o main para criar algum objeto e também como uma "interface" com o usuário, como você pode ver, usei algumas instruções condicionais para "perguntar ao usuário" o que ele deseja fazer.
Minha pergunta surgiu do fato de que a interface poderia ser encapsulada em outro objeto e não atribuir essa responsabilidade ao 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
função não é um conceito do OOP.