Apresentando a programação orientada a objetos

Este artigo visa a apresentar o conceito da orientação a objetos, não restringindo-se a uma linguagem de programação específica.

[ Hits: 8.111 ]

Por: - em 21/12/2018


Construtores, herança e polimorfismo



Em programação orientada a objetos, construtores são como se fossem métodos, sempre sem retorno e com o mesmo nome da classe, que são executados toda vez que uma classe for instanciada. Não há a necessidade de inserir o termo "void" ao desenvolver o construtor. Construtores podem ser usados para atribuir valores iniciais aos atributos do objeto e também para executar um código pré-determinado. Inclusive, da mesma forma que os métodos, podem receber parâmetros.

Assim, toda vez que "produzirmos" um objeto instanciado da classe ArCondicionado ou da Televisao, podemos fazer com que o atributo "estado" de ambas já iniciem com o valor 1 (ligado), graças aos construtores.

Na página anterior, foi vista a formulação dessas duas classes ArCondicionado e Televisao, que era desta forma:

Classe Televisao

Atributos:
  • (inteiro) potencia // em Watts
  • (inteiro) voltagem // em Volts
  • (string) cor
  • (string) marca
  • (inteiro) canal
  • (booleano) estado // ligado (1) ou desligado (0)

Métodos:
  • void ligar()
  • void desligar()
  • void mudarCanal(x)

Classe ArCondicionado

Atributos:
  • (inteiro) potencia // em Watts
  • (inteiro) voltagem // em Volts
  • (string) cor
  • (string) marca
  • (inteiro) temperatura // em Celsius
  • (booleano) estado // ligado (1) ou desligado (0)

Métodos:
  • void ligar()
  • void desligar()
  • void mudarTemperatura(x)

Perceba que as partes em negrito são comuns às duas classes. Mas imagine se tivéssemos várias classes e que a maioria delas senão todas compartilhassem de métodos e atributos em comuns? Foi aí que desenvolveu-se o conceito de herança: uma classe mãe que trará seu conteúdo às classes filhas. É como se existisse uma classe Eletrodomestico que deu origem às classes Televisao e ArCondicionado.

Eletrodomestico, então, teria em seu conteúdo somente todas as partes destacadas acima em negrito, e Televisao e ArCondicionado incorporariam todo esse conteúdo por meio da chamada herança, e adicionariam novos métodos e novos atributos. Cada classe filha teria suas peculiaridades, mas teriam os atributos e métodos de Eletrodomestico em comum.

As duas classes compartilham os métodos ligar() e desligar(), mas, devido às diferenças entre cada aparelho, com componentes e propósitos de uso distintos, o ato de ligar ou desligar uma televisão é diferente do de ligar ou desligar um ar condicionado, embora a finalidade seja a mesma, que é a de colocar o equipamento em funcionamento ou não.

Em OO, é possível sobrescrever os métodos, ou seja, escrever no código do programa as funcionalidades de ligar() e desligar() na classe Televisao de um jeito e na ArCondicionado de outro jeito. A isso, damos o nome de polimorfismo, que quer dizer "muitas formas".

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Construtores, herança e polimorfismo
   3. Public, private, get, set e this
Outros artigos deste autor

Guia de Instalação do Ubuntu

Compilando o Kernel Linux

Guia para iniciantes no Linux

Guia de Instalação do Slackware

Guia de Instalação do Arch Linux

Leitura recomendada

Gentoo: Interfaces gráficas para Portage/Emerge - substitutos do Kuroo

Mplayer e Mencoder com placa de TV

Kernel otimizado? Porque não?

Instalando e atualizando pacotes no Fedora em computadores sem internet

Gerenciamento remoto de servidores VMWare via SSH

  
Comentários
[1] Comentário enviado por Gustavo_fm em 23/12/2018 - 13:38h

Muito útil o artigo. Conseguiu me explicar algo que sempre tentei entender mas nunca consegui. Obrigado pela contribuição !

[2] Comentário enviado por leo_linux_br em 06/01/2019 - 10:05h

Mim ajudou bastante!Obrigado.

[3] Comentário enviado por Nick-us em 07/03/2019 - 03:30h

Parabéns pelo artigo. Também achei muito útil sua forma de exemplificar as coisas!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts