Article image
Alexsandro Almeida
Alexsandro Almeida07/06/2025 20:18
Compartilhe
WEX - End to End EngineeringRecomendados para vocêWEX - End to End Engineering

Orientação a Objetos em Java: Conceitos Fundamentais

    Introdução

    A Orientação a Objetos (OO) é um paradigma de programação que utiliza objetos e classes para organizar e estruturar o código de forma modular e reutilizável. Java é uma linguagem totalmente orientada a objetos, e entender seus princípios é essencial para desenvolver aplicações robustas e escaláveis.

    Neste artigo, abordaremos os principais conceitos da OO em Java, incluindo classes, objetos, encapsulamento, herança, polimorfismo e abstração.

    1. Classes e Objetos

    Classe

    Uma classe é um modelo ou blueprint que define os atributos (variáveis) e comportamentos (métodos) que um objeto terá. Em Java, uma classe é declarada usando a palavra-chave class.

    public class Carro {
    // Atributos
    String marca;
    String modelo;
    int ano;
    
    // Método
    public void acelerar() {
      System.out.println("Acelerando o carro...");
    }
    }
    

    Objeto

    Um objeto é uma instância de uma classe. Ele representa uma entidade real que pode interagir com outros objetos.

    public class Main {
    public static void main(String[] args) {
      // Criando um objeto da classe Carro
      Carro meuCarro = new Carro();
      meuCarro.marca = "Toyota";
      meuCarro.modelo = "Corolla";
      meuCarro.ano = 2022;
    
      meuCarro.acelerar(); // Chamando o método
    }
    }
    

    2. Encapsulamento

    O encapsulamento é o princípio de ocultar os detalhes internos de um objeto e controlar o acesso aos seus dados usando modificadores de acesso (privatepublicprotected). Em Java, utilizamos getters e setters para acessar e modificar atributos privados.

    public class Pessoa {
    private String nome; // Atributo privado
    
    // Getter
    public String getNome() {
      return nome;
    }
    
    // Setter
    public void setNome(String nome) {
      this.nome = nome;
    }
    }
    

    Exemplo de uso:

    Pessoa pessoa = new Pessoa();
    pessoa.setNome("João");
    System.out.println(pessoa.getNome()); // Saída: João
    

    3. Herança

    A herança permite que uma classe (subclasse) herde atributos e métodos de outra classe (superclasse), promovendo reutilização de código. Em Java, usamos a palavra-chave extends.

    public class Animal { // Superclasse
    public void comer() {
      System.out.println("O animal está comendo.");
    }
    }
    
    public class Cachorro extends Animal { // Subclasse
    public void latir() {
      System.out.println("Au Au!");
    }
    }
    

    Exemplo de uso:

    Cachorro meuCachorro = new Cachorro();
    meuCachorro.comer(); // Método herdado
    meuCachorro.latir(); // Método próprio
    

    4. Polimorfismo

    O polimorfismo permite que um mesmo método se comporte de formas diferentes em classes distintas. Pode ser alcançado por sobrescrita de métodos (@Override) ou sobrecarga de métodos.

    Sobrescrita (Override)

    public class Gato extends Animal {
    @Override
    public void comer() {
      System.out.println("O gato está comendo ração.");
    }
    }
    

    5. Abstração

    A abstração permite focar nos aspectos essenciais de um objeto, ocultando detalhes complexos. Em Java, podemos usar classes abstratas (abstract) e interfaces.

    Classe Abstrata

    public abstract class Veiculo {
    public abstract void mover(); // Método abstrato (sem implementação)
    }
    
    public class Carro extends Veiculo {
    @Override
    public void mover() {
      System.out.println("O carro está se movendo.");
    }
    }
    

    Interface

    public interface Voador {
    void voar(); // Método sem implementação
    }
    
    public class Passaro implements Voador {
    @Override
    public void voar() {
      System.out.println("O pássaro está voando.");
    }
    }
    

    Conclusão

    A Orientação a Objetos em Java é fundamental para criar sistemas organizados, reutilizáveis e de fácil manutenção. Dominar os conceitos de classes, objetos, encapsulamento, herança, polimorfismo e abstração permite desenvolver aplicações mais eficientes e escaláveis.

    À medida que você pratica esses conceitos, torna-se mais fácil aplicar padrões de projeto e arquiteturas avançadas, como MVC, SOLID e Design Patterns.

    Meu linkedIn AQUI

    Compartilhe
    Recomendados para você
    TONNIE - Java and AI in Europe
    Microsoft - Azure Administrator Certification (AZ-104)
    WEX - End to End Engineering
    Comentários (0)
    Recomendados para vocêWEX - End to End Engineering