image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Renan Gomes
Renan Gomes30/09/2023 17:49
Compartilhe

Programação Orientada a Objetos (POO)

  • #Java
  • #POO

Introdução

A Programação Orientada a Objetos (POO) é um paradigma de programação que se baseia na organização do código em torno de "objetos". Esses objetos são unidades autônomas que incorporam dados e métodos para operar nesses dados. Neste texto, vamos explorar os conceitos fundamentais da POO e fornecer exemplos em Java para ilustrar cada um deles.

 

Encapsulamento

O encapsulamento é um dos princípios fundamentais da POO, focado em ocultar os detalhes internos de um objeto e fornecer uma interface pública para interagir com ele. Em Java, esse conceito é implementado definindo os atributos de uma classe como privados e controlando o acesso a esses atributos por meio de métodos de acesso (getters) e de modificação (setters).

Exemplo em Java:

public class Pessoa {

private String nome;

public String getNome() {

return nome;

}

public void setNome(String novoNome) {

this.nome = novoNome;

}

}

 

Abstração

A abstração refere-se à capacidade de representar objetos do mundo real de forma simplificada e encapsulada em classes. Isso facilita a resolução de problemas em programas de computador, tornando o código mais legível e organizado.

Herança

A herança permite que uma classe herde atributos e métodos de outra classe, estabelecendo uma relação de herança entre elas. Isso promove a reutilização de código, generalização e extensibilidade.

Exemplo em Java:

class Veiculo {

void mover() {

System.out.println("Veículo em movimento");

}

}

 

class Aviao extends Veiculo { //Essa classe herdará o método mover()

}

public class Main {

public static void main(String[] args) {

Aviao meuAviao = new Aviao();

meuVeiculo.mover();

}

}

 

Polimorfismo

O polimorfismo é um dos conceitos fundamentais da POO e pode ser dividido em duas categorias principais: polimorfismo universal e polimorfismo ad-hoc.

  • Polimorfismo Universal:

O polimorfismo universal permite que objetos de diferentes classes sejam tratados de forma uniforme através de uma mesma interface. Esta categoria abrange principalmente o polimorfismo de subtipo e o polimorfismo de parametrização.

  • Polimorfismo de Subtipo: Envolve a herança, onde uma classe filha pode substituir ou estender um método da classe pai. Isso promove a reutilização de código e a extensibilidade do software. Veja um exemplo em Java:

class Veiculo {

void mover() {

System.out.println("Veículo em movimento");

 }

}

class Carro extends Veiculo {

@Override

void mover() {

System.out.println("Carro em movimento");

}

}

class Moto extends Veiculo {

@Override

void mover() {

System.out.println("Moto em movimento");

}

}

 

  • Polimorfismo de Parametrização: Usa classes genéricas ou interfaces para permitir que diferentes tipos de objetos sejam tratados de forma polimórfica, aumentando a flexibilidade do código. Veja um exemplo em Java:

 

interface Forma {

void desenhar();

}

class Circulo implements Forma {

@Override

public void desenhar() {

System.out.println("Desenhando um círculo");

}

}

class Quadrado implements Forma {

@Override

public void desenhar() {

System.out.println("Desenhando um quadrado");

      }

}

 

  • Polimorfismo Ad-hoc:

O polimorfismo ad-hoc engloba a capacidade de sobrecarga e sobreescrita de métodos. Estes conceitos permitem que métodos com o mesmo nome realizem tarefas diferentes com base nos argumentos passados e que uma subclasse forneça uma implementação específica para um método definido na classe pai. Veja exemplos em Java para sobrecarga e sobreescrita.

// Exemplo de sobrecarga

public class Calculadora {

public int somar(int a, int b) {

return a + b;

}

public double somar(double a, double b) {

return a + b;

}

}

 

// Exemplo de sobreescrita

class Animal {

void fazerBarulho() {

System.out.println("Animal fazendo barulho");

}

}

 

class Cachorro extends Animal {

@Override

void fazerBarulho() {

System.out.println("Cachorro latindo");

}

}

 

Exceções

As exceções são usadas para lidar com situações inesperadas durante a execução de um programa. Existem exceções verificadas (que exigem tratamento) e exceções não verificadas (que não exigem tratamento).

Exemplo em Java:

public class ExemploExcecao {

public static void main(String[] args) {

try {

int resultado = dividir(10, 0);

System.out.println("Resultado: " + resultado);

}

catch (ArithmeticException e) {

System.out.println("Erro: Divisão por zero");

}

}

static int dividir(int a, int b) {

return a / b;

}

}

Conclusão

Dominar os conceitos fundamentais da Programação Orientada a Objetos (POO) em Java não só torna o código mais organizado, reutilizável e flexível, mas também contribui para a eficiência, robustez e manutenibilidade dos sistemas. Essas habilidades são essenciais para qualquer programador que busque excelência na programação Java e no desenvolvimento de software de qualidade.

Compartilhe
Comentários (0)