Junior
O que é programação orientada a objetos (POO) em Java?
sobes.tech IA
Resposta da IA
A programação orientada a objetos em Java é um paradigma baseado no conceito de "objetos", que contêm dados (propriedades) e métodos (ações).
Princípios básicos da POO em Java:
- Encapsulamento: Ocultação de dados e métodos dentro de um objeto, acessíveis apenas através de interfaces específicas. Isso garante a segurança dos dados e a modularidade.
- Herança: Permite criar novas classes (subclasses) baseadas em classes existentes (superclasses), herdando suas propriedades e métodos. Isso promove a reutilização do código.
- Polimorfismo: Permite usar objetos de diferentes classes através de uma mesma interface. Isso oferece flexibilidade e extensibilidade. Distingue-se o polimorfismo em tempo de compilação (sobrecarga de métodos) e em tempo de execução (sobrescrita de métodos).
- Abstração: Destacar as características essenciais de um objeto e ocultar detalhes não essenciais. Isso ajuda a simplificar sistemas complexos.
Exemplo de uma classe em Java:
public class Car {
private String brand; // Propriedade encapsulada
private String model;
private int year;
public Car(String brand, String model, int year) { // Construtor
this.brand = brand;
this.model = model;
this.year = year;
}
public void displayInfo() { // Método
System.out.println("Marca: " + brand + ", Modelo: " + model + ", Ano: " + year);
}
// Getters e setters (para acessar propriedades privadas)
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
}
Exemplo de uso dos princípios de POO:
// Herança
public class ElectricCar extends Car {
private int batteryCapacity;
public ElectricCar(String brand, String model, int year, int batteryCapacity) {
super(brand, model, year); // Chamada ao construtor da superclasse
this.batteryCapacity = batteryCapacity;
}
@Override // Polimorfismo (sobrescrita de método)
public void displayInfo() {
super.displayInfo(); // Chamada ao método da superclasse
System.out.println("Capacidade da bateria: " + batteryCapacity + " kWh");
}
}
// Uso de objetos
public class Main {
public static void main(String[] args) {
Car myCar = new Car("Toyota", "Camry", 2020);
Car myElectricCar = new ElectricCar("Tesla", "Model 3", 2022, 75);
myCar.displayInfo();
myElectricCar.displayInfo(); // Polimorfismo em ação
}
}
Vantagens da POO:
- Reutilização de código: Através da herança.
- Facilidade de manutenção: Mudanças afetam apenas objetos ou classes específicos.
- Flexibilidade e extensibilidade: Graças ao polimorfismo.
- Melhor organização do código: Divisão do sistema em módulos (objetos).
- Segurança de dados: Através do encapsulamento.