Compreender Programação Orientada a Objetos em Java (OOP)

Java é orientada a objetos. O que isso significa? Diferentemente das linguagens, tais como Fortran, que se concentram em dar o computador imperativo "Fazei isto / Do que" comandos, linguagens orientadas a objeto se concentrar em dados. Claro, programas orientados a objetos ainda dizer ao computador o que fazer. Eles começam, no entanto, organizando os dados e os comandos de vir mais tarde.

linguagens orientadas a objetos são melhores do que "Fazei isto / Do que" línguas porque eles organizar os dados de uma forma que permite que as pessoas fazem todos os tipos de coisas com ele. Para modificar os dados, você pode construir sobre o que você já tem, em vez de desfazer tudo o que fez e começar de novo a cada vez que você precisa fazer algo novo. Embora os programadores de computador são geralmente pessoas inteligentes, que levou algum tempo para descobrir isso.

Objetos e suas classes

Em uma linguagem orientada a objeto, você usa objetos e classes para organizar seus dados.

Imagine que você está escrevendo um programa de computador para acompanhar as casas em um novo condomínio (ainda em construção). As casas diferem apenas ligeiramente uns dos outros. Cada casa tem uma cor distinta tapume, uma cor da pintura interior, um estilo de armário de cozinha, e assim por diante. Em seu programa de computador orientada a objetos, cada casa é um objeto.

Mas os objetos não são toda a história. Embora as casas diferem ligeiramente umas das outras, todas as casas compartilham a mesma lista de características. Por exemplo, cada casa tem uma característica conhecida como cor tapume. Cada casa tem uma outra característica conhecida como estilo do armário da cozinha. Em seu programa orientado a objeto, você precisa de uma lista mestra que contém todas as características que um objeto casa pode possuir. Esta lista principal de características é chamado de classe.

Então, você tem isso. Programação orientada a objetos é misnamed. Ele deve realmente ser chamado de "programação com classes e objetos."

Observe que a palavra aulas foi listado em primeiro lugar? Pense novamente sobre um conjunto habitacional que está sob construção. Em algum lugar no lote, em um trailer raquítica estacionado na terra nua, é uma lista mestra de características conhecidas como um modelo. projeto de um arquiteto é como a classe de um programador orientado a objetos. Um modelo é uma lista de características que cada casa terá. O projeto diz: "tapume". O objeto da casa real tem tapume cinza. O projeto diz, "armário da cozinha." O objeto da casa real tem armários de cozinha Louis XIV.

Um ano depois de criar o projeto, você usá-lo para construir dez casas. É o mesmo com classes e objetos. Primeiro, o programador escreve código para descrever uma classe. Então, quando o programa é executado, o computador cria objetos a partir da (modelo) de classe.

Então, essa é a verdadeira relação entre classes e objetos. O programador define uma classe, e da definição de classe, o computador faz com que objetos individuais.

O que é tão bom quanto uma linguagem orientada a objeto?

Imagine que você já tenha escrito um programa de computador para acompanhar as instruções de construção para casas em um novo desenvolvimento. Então, o grande chefe decide sobre um plano modificado - um plano em que metade das casas têm três quartos, ea outra metade tem quatro.

Se você usar o velho FORTRAN / style C da programação de computadores, as instruções parecido com este:
Cavar uma vala para o porão.
Lay betão em torno dos lados da vala.
Coloque dois por-fours ao longo dos lados para o frame do porão.
...

Isso seria como um arquiteto criando uma longa lista de instruções em vez de um modelo. Para modificar o plano, você tem que ordenar a lista para encontrar as instruções para construir quartos. Para piorar as coisas, as instruções poderiam ser espalhados entre as páginas 234, 394-410, 739, 10 e 2. Se o construtor teve de decifrar 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 ambos de três e quatro quartos, você pode começar com um modelo chamado de casa projeto que tem um piso térreo e um segundo andar, mas não tem paredes interiores desenhados no segundo andar. Então, você faz mais dois modelos do segundo andar - uma para a casa de três quartos e outro para a casa de quatro quartos. (Você nomeia estes novos modelos as casa de três quartos projeto eo casa de quatro quartos projeto.)

Seus colegas construtor são surpreendidos com o seu senso de lógica e organização, mas eles têm preocupações. Eles colocam uma questão. "Você chamou um dos modelos do plano" de três quartos casa '. Como você pode fazer isso se for um projeto para um segundo andar e não para uma casa inteira? "

Você sorri consciente e responder, "A casa modelo de três quartos pode dizer: 'Para obter informações sobre os pisos inferiores, ver a casa modelo original.' Dessa forma, a casa modelo de três quartos descreve uma casa inteira. A casa modelo de quatro quartos pode dizer a mesma coisa. Com esta configuração, podemos tirar proveito de todo o trabalho que já fez para criar a casa modelo original e conservar lotes de 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 casa original. Você também pode dizer que as de três e quatro quartos da casa são as classes estendendo a classe casa original.

A classe casa original é chamado de superclasse das classes de casas de três e quatro quartos. Nesse sentido, as classes de casas de três e quatro quartos são subclasses da classe casa original. Dito de outra forma, a classe casa original é chamado de classe pai de aulas de casas de três e quatro quartos. As classes de casas de três e quatro quartos são classes filhas da classe casa original.

Escusado será dizer que os seus colegas de casa-construtor é ciumento. Uma multidão de casa construtores é mobbing ao seu redor para ouvir sobre suas grandes idéias. Então, naquele momento, você deixa cair mais uma bomba:. "Ao criar uma classe com subclasses, podemos reutilizar o projeto no futuro, se alguém vem e quer uma casa de cinco quartos, podemos estender nossa casa modelo original, fazendo uma casa plano de cinco quartos. Nós nunca vai ter que gastar dinheiro para um modelo da casa original novamente. "

"Mas", diz um colega na fileira de trás, "o que acontece se alguém quiser um design diferente do primeiro andar? Será que o lixo da casa modelo original ou começar a rabiscar todo o projeto original? Isso vai custar muito dinheiro, ganhou ' é? "

Em um tom confiante, você responde, "Não temos que mexer com o modelo original casa. Se alguém quer uma Jacuzzi em sua sala de estar, nós podemos fazer um pequeno e novo modelo, descrevendo apenas a nova sala e chamam isso de Jacuzzi-in-living-room casa projeto. Então, este novo modelo pode se referir ao modelo da casa original para informações sobre o resto da casa (a parte que não é na sala de estar). "Na linguagem de programação orientada a objetos, a casa Jacuzzi-em-sala de estar projeto ainda estende-se a casa modelo original. O plano Jacuzzi ainda é uma subclasse da planta casa original. Na verdade, toda a terminologia sobre superclasse, classe pai, e classe criança ainda se aplica. A única coisa que há de novo é que o projeto Jacuzzi substituições a sala possui no modelo casa original.

Nos dias antes de linguagens orientadas a objetos, mundo da programação viveu uma crise no desenvolvimento de software. Programadores escreveu código, em seguida, descobriu novas necessidades e, em seguida, teve para o lixo o 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. Programação orientada a objetos mudou tudo isso para melhor.

menu