Índice:
Vídeo: Programação Orientada a Objetos (POO) // Dicionário do Programador 2024
Java é orientado a objetos. O que isso significa? Ao contrário das linguagens, como FORTRAN, que se concentram em fornecer aos comandos do computador "Fazer isso / fazer isso", os idiomas orientados a objetos se concentram nos dados. Claro, os programas orientados a objetos ainda dizem ao computador o que fazer. Eles começam, no entanto, organizando os dados, e os comandos chegam depois.
As linguagens orientadas a objetos são melhores do que as linguagens "Fazer isso / fazer isso" porque organizam dados de forma que as pessoas façam todos os tipos de coisas com ele. Para modificar os dados, você pode construir sobre o que você já possui, em vez de destruir tudo o que você fez e começar de novo sempre que você precisa fazer algo novo. Embora os programadores de computador sejam geralmente pessoas inteligentes, eles levaram algum tempo para descobrir isso.
Objetos e suas classes
Em um idioma orientado a objetos, você usa classes de objetos e para organizar seus dados.
Imagine que você está escrevendo um programa de computador para acompanhar as casas em um novo desenvolvimento de condomínio (ainda em construção). As casas diferem apenas um pouco entre si. Cada casa tem uma cor distintiva de tapume, uma cor de pintura interior, um estilo de armário de cozinha e assim por diante. No seu programa de computador orientado a objetos, cada casa é um objeto.
Mas objetos não são toda a história. Embora as casas diferem ligeiramente uma da outra, todas as casas compartilham a mesma lista de características. Por exemplo, cada casa tem uma característica conhecida como cor de paralelepípedo. Cada casa tem outra característica conhecida como estilo de armário de cozinha. No seu programa orientado a objetos, você precisa de uma lista principal contendo todas as características que um objeto doméstico pode possuir. Essa lista principal de características é chamada de classe .
Então, você tem isso. A programação orientada a objetos é mal denominada. Realmente deveria ser chamado de "programação com classes e objetos. "
Observe que a palavra classes foi listada primeiro? Pense novamente sobre um desenvolvimento habitacional que está em construção. Em algum lugar do lote, em um trailer raquítico estacionado na sujeira nua, é uma lista principal das características conhecidas como um modelo. O modelo de um arquiteto é como uma classe de programador orientada a objetos. Um plano é uma lista de características que cada casa terá. O plano diz, "paralelepípedo. "O objeto da casa real tem tapume cinza. O plano diz, "armário de cozinha. "O objeto da casa real tem armários de cozinha Louis XIV.
Um ano depois de criar o plano, você o usa para construir dez casas. É o mesmo com classes e objetos. Primeiro, o programador escreve o código para descrever uma classe. Então, quando o programa é executado, o computador cria objetos da classe (blueprint).
Então, essa é a relação real entre classes e objetos. O programador define uma classe e, a partir da definição da classe, o computador faz objetos individuais.
O que é tão bom em relação a uma linguagem orientada a objetos?
Imagine que você já escreveu um programa de computador para acompanhar as instruções de construção de casas em um novo desenvolvimento. Então, o grande chefe decide sobre um plano modificado - um plano no qual metade das casas tem três quartos e a outra metade tem quatro.
Se você usa o antigo estilo FORTRAN / C de programação de computador, suas instruções se parecem com isto:
Cavar uma vala para o porão.
Coloque concreto ao redor dos lados da vala.
Coloque duas por quatro ao longo dos lados para a moldura do porão.
…
Este seria como um arquiteto criando uma longa lista de instruções em vez de um plano. Para modificar o plano, você deve classificar a lista para encontrar as instruções para a construção de quartos. Para piorar as coisas, as instruções podem ser espalhadas entre as páginas 234, 394-410, 739, 10 e 2. Se o construtor tiver que decifrar as instruções complicadas de outras pessoas, a tarefa seria dez vezes mais difícil.
Começando com uma classe, no entanto, é como começar com um plano. Se você decidir ter casas de três e quatro quartos, você pode começar com um plano chamado casa modelo que tem um piso térreo e um segundo andar, mas não tem paredes internas desenhadas no segundo andar. Então, você faz mais dois planos no segundo andar - um para a casa de três quartos e outro para a casa de quatro quartos. (Você nomeia estes novos modelos o modelo de casa de três quartos e o apartamento de quatro quartos .
Seus colegas de construtores estão maravilhados com seu senso de lógica e organização, mas eles têm preocupações. Eles colocam uma pergunta. "Você chamou um dos planos do plano de" casa de três quartos ". Como você pode fazer isso se for um plano para um segundo andar e não para uma casa inteira? "
Você sorri conscientemente e responde:" O modelo de casa de três quartos pode dizer: "Para informações sobre os andares inferiores, veja o plano original da casa. "Dessa forma, o plano de casa de três quartos descreve uma casa inteira. O modelo de casa de quatro quartos pode dizer o mesmo. Com esta configuração, podemos tirar proveito de todo o trabalho que já fizemos para criar o plano original da casa e economizar muito dinheiro. "
Na linguagem de programação orientada a objetos, as classes de casas de três e quatro quartos são herdando as características da classe original da casa. Você também pode dizer que as aulas de casa de três e quatro quartos são estendendo a classe original da casa.
A classe original da casa é chamada de superclasse das classes de casas de três e quatro quartos.Nesse sentido, as aulas de casa de três e quatro quartos são subclasses da classe original da casa. Dito de outra forma, a classe original da casa é chamada classe pai de classes de casas de três e quatro quartos. As aulas de casas de três e quatro quartos são aulas infantis da classe original da casa.
Escusado será dizer que seus colegas do construtor doméstico estão com ciúmes. Uma multidão de construtores domésticos está se engajando em torno de você para ouvir sobre suas ótimas idéias. Então, naquele momento, você deixa cair mais uma bomba: "Ao criar uma classe com subclasses, podemos reutilizar o plano no futuro. Se alguém vem e quer uma casa de cinco quartos, podemos ampliar o nosso plano original da casa fazendo um modelo de casa de cinco quartos. Nós nunca teremos que gastar dinheiro para um plano de casa original novamente. "
" Mas ", diz um colega na linha de trás," o que acontece se alguém quiser um design diferente no primeiro andar? Trouxemos o modelo original da casa ou começamos a rabiscos em todo o plano original? Isso vai custar muito dinheiro, não é? "
Em um tom confiável, você responde:" Nós não precisamos mexer com o plano original da casa. Se alguém quiser uma banheira de hidromassagem em sua sala de estar, podemos fazer um novo e pequeno plano descrevendo apenas a nova sala de estar e chamar isso de Jacuzzi-na sala de casa casa . Então, este novo modelo pode se referir ao modelo original da casa para obter informações sobre o resto da casa (a parte que não está na sala de estar). "Na linguagem de programação orientada a objetos, o modelo de casa Jacuzzi-na sala ainda estende o plano original da casa. O modelo de jacuzzi ainda é uma subclasse do plano original da casa. Na verdade, toda a terminologia sobre superclasse, classe pai e classe filho ainda se aplica. O único que é novo é que o modelo de hidromassagem substitui as características da sala de estar no plano original da casa.
Nos dias anteriores às linguagens orientadas a objetos, o mundo da programação experimentou uma crise no desenvolvimento de software. Os programadores escreveram o código, depois descobriram novas necessidades, e então tiveram que trilhar seu código e começar do zero. Isso aconteceu uma e outra vez porque o código que os programadores estavam escrevendo não poderia ser reutilizado. A programação orientada a objetos mudou tudo para melhor.