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: 9.375 ]

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 Slackware

Guia de Instalação do Ubuntu

Linguagens de programação: o que são e quais existem?

Guia para iniciantes no Linux

Compilando o Kernel Linux

Leitura recomendada

Pós-instalação do Solus OS para um desktop voltado ao usuário final

Configurando o aMSN para Lan House e/ou Cyber Café

Livestation - Assista TV no seu GNU/Linux

Emulando o Internet Explorer no Slackware

Cryptkeeper - Transportando arquivos com segurança no pendrive

  
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