O que é a programação orientada a objetos

Introduzimos para os mais leigos as bases sobre as que se assenta a Programação Orientada a Objetos.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 20/10/04
Valorize este artigo:
A programação Orientada a objetos (POO) é uma forma especial de programar, mais próximo de como expressaríamos as coisas na vida real do que outros tipos de programação.

Com a POO temos que aprender a pensar as coisas de uma maneira distinta, para escrever nossos programas em termos de objetos, propriedades, métodos e outras coisas que veremos rapidamente para esclarecer conceitos e dar uma pequena base que permita soltarmos um pouco com este tipo de programação.

Aprenda os conceitos principais de objetos, propriedades, classes, métodos: Programação Orientada a Objetos em .net

Motivação

Durante anos, os programadores se dedicaram a construir aplicações muito parecidas que resolviam uma vez ou outra, os mesmo problemas. Para conseguir que os esforços dos programadores possam ser utilizados por outras pessoas foi criado a POO. Esta é uma série de normas de realizar as coisas de maneira com que outras pessoas possam utilizá-las e adiantar seu trabalho, de maneira que consigamos que o código possa se reutilizar.

A POO não é difícil, mas é uma forma especial de pensar, às vezes subjetiva de quem a programa, de forma que a maneira de fazer as coisas possa ser diferente segundo o programador. Embora possamos fazer os programas de formas distintas, nem todas elas são corretas, o difícil não é programar orientado a objetos e sim, programar bem. Programar bem é importante porque assim podemos aproveitar todas as vantagens da POO.

Como se pensa em objetos

Pensar em termos de objetos é muito parecido a como faríamos na vida real. Por exemplo, vamos pensar em um carro para dar um modelo em um esquema de POO. Diríamos que o carro é o elemento principal que tem uma série de características, como poderiam ser a cor, o modelo ou a marca. Ademais tem uma série de funcionalidades associadas, como podem ser andar, parar ou estacionar.

Então em um esquema POO o carro seria o objeto, as propriedades seriam as características como a cor ou o modelo e os métodos seriam as funcionalidades associadas como andar ou parar.

Por dar outro exemplo, vamos ver como faríamos um modelo em um esquema POO de uma fração, ou seja, essa estrutura matemática que tem um numerador e um denominador que divide ao numerador, por exemplo, 3/2.

A fração será o objeto e terá duas propriedades, o numerador e o denominador. Logo, poderia ter vários métodos como simplificar, somar com outra fração ou número, subtrair com outra fração, etc.

Estes objetos poderão ser utilizados nos programas, por exemplo, em um programa de matemáticas seria feito o uso de objetos fração e em um programa que providencie uma oficina de carros, seria utilizado o uso de objeto carro. Os programas Orientados a objetos utilizam muitos objetos para realizar as ações que se desejam realizar e eles mesmos também são objetos. Ou seja, a oficina de carros será um objeto que utilizará objetos carro, ferramenta, mecânico, trocas, etc.

Classes em POO

As classes são declarações de objetos, também se poderiam definir como abstrações de objetos. Isto quer dizer que a definição de um objeto é a classe. Quando programamos um objeto e definimos suas características e funcionalidades na verdade o que estamos fazendo é programar uma classe. Nos exemplos anteriores, na verdade falávamos das classes carro ou fração porque somente estivemos definindo, embora por alto, suas formas.

Propriedades em classes

As propriedades ou atributos são as características dos objetos. Quando definimos uma propriedade normalmente especificamos seu nome e seu tipo. Podemos ter a idéia de que as propriedades são algo assim como as variáveis onde armazenamos os dados relacionados com os objetos.

Métodos nas classes

São as funcionalidades associadas aos objetos. Quando estamos programando as classes as chamamos de métodos. Os métodos são como funções que estão associadas a um objeto.

Objetos em POO

Os objetos são exemplares de uma classe qualquer. Quando criamos um exemplar temos que especificar a classe a partir da qual se criará. Esta ação de criar um objeto a partir de uma classe se chama instance (que significa em inglês exemplificar). Por exemplo, um objeto da classe fração é por exemplo, 3/5. O conceito ou definição de fração seria a classe, mas quando já estávamos falando de uma fração em concreto 4/7, 8/1000 ou qualquer outra a chamamos de objeto.

Para criar um objeto temos que escrever uma instrução especial que possa ser distinta dependendo da linguagem de programação que se empregue, mas será algo parecido a isto.

meuCarro = new Carro()

Com a palavra new especificamos que se tem que criar uma instance da classe que continua a seguir. Dentro dos parênteses poderíamos colocar parâmetros com os quais se inicia o objeto da classe carro.

Estados em objetos

Quando temos um objeto suas propriedades tomam valores. Por exemplo, quando temos um carro a propriedade cor tomará um valor em concreto, como por exemplo, vermelho, cinza. O valor concreto de uma propriedade de um objeto se chama estado.

Para acessar a um estado de um objeto para ver seu valor ou mudá-lo se utiliza o operador ponto.

meuCarro.cor = vermelho

O objeto é meuCarro, logo colocamos o operador ponto e por último o nome da propriedade a qual desejamos acessar. Neste exemplo, estamos mudando o valor do estado da propriedade do objeto a vermelho com uma simples atribuição.

Mensagens em objetos

Uma mensagem em um objeto é a ação de efetuar uma chamada a um método. Por exemplo, quando dizemos a um objeto carro para andar, estamos lhe passando a mensagem "ande".

Para mandar mensagens aos objetos utilizamos o operador ponto, seguido do método que desejamos utilizar.

meuCarro.andar()

Neste exemplo, passamos a mensagem andar(). Deve-se colocar parênteses assim como com qualquer chamada a uma função, dentro iriam os parâmetros.

Outras coisas

Ainda há muito o que conhecer da POO já que somente fizemos referência às coisas mais básicas. Também existem mecanismos como a herança e o polimorfismo que são umas das possibilidades mais potentes da POO.

A herança serve para criar objetos que incorporem propriedades e métodos de outros objetos. Assim, poderemos construir uns objetos a partir de outros sem ter que reescrevê-lo todo.

O polimorfismo serve para que não tenhamos que nos preocupar sobre o que estamos trabalhando, e abstrairmos para definir um código que seja compatível com objetos de vários tipos.

São conceitos avançados que custa explicar nas linhas deste artigo. Não se deve esquecer que existem livros inteiros dedicados à POO e aqui só pretendemos dar uma idéia a algumas coisas para que os lembrem quando tenham que estar diante delas nas linguagens de programação que deve conhecer um programador do web.





Comentários do artigo
Foram enviados 51 comentários ao artigo
7 comentários não revisados
44 comentários revisados:
Por: Matheus Haddad
05/10/05
A Programação Orienta a Objetos realmente é uma técnica muito útil para o desenvolvimento de sistemas estáveis e de fácil manutenção.

O uso de Design Patterns, ou padrões de projeto, ajuda a melhor o projeto de um sistema Orientado a Objetos, além de simplificar a implementação do mesmo.

Matheus Haddad
http://www.matheus.eti.br
Por: Diego Alvarez
07/4/06
Procurava um material para me auxiliar a realizar um treinamento básico sobre POO. Esse artigo ajudou bastante!!! Com uma linguagem excelente o autor consegue transmitir os conceitos sem cansar o leitor!
Parabéns!
Por: Julio
02/1/07
Parabéns ao escritor do artigo. Infelizmente não foi divulgado seu nome, por favor divulguem.
<br><br>
<strong>RESPOSTA:</strong>
<br><br>
O autor se chama Miguel Angel Alvarez, está abreviado pelas suas siglas.
Por: Amauri
08/3/07
Helô Mundo!!! Artigo perfeito.Nem acreditei qd encontrei depois de umas googadas. ...Não é exagero não, acho que faltam artigos claros como esse na net, palavras claras sobre coisa básica muitas vezes é que fazem a diferença sim. Jogue a primeira pedra quem nunca se embananou-se nos conceitos básicos no meio de uma linha de código. Fantástico, esse artigo me esclareceu sobre o que eu andava buscando, muito obrigado Galera. Q tal continuá-lo com os tópicos - Poliformismo e Herança? Muito bom!!!
Por: Gilberto
24/3/07
- Parabéns, o artigo ficou muito bom, porém, o destaque vai para os exemplos muito bem colocados.
Por: Geraldo Paiva
18/4/07
Depois de ler o conceito de POO exposto de forma muito clara e compresnsível neste artigo posso, finalmente, iniciar aprendizado de uma linguagem OO, como JAVA
Por: Fabio Indalecio
05/5/07
Ótimo este artigo, me auxiliou muito.
Parabens...
O autor poderia escrever um livro sobre programaçao orientada a objeto com esta linguagem clara, seria sucesso na certa...
Por: Douglas
06/5/07
Muito boa explicação e de facil entendimento...
nota 10 !!!
Por: Deivison
18/5/07
Muito bom o artigo!!!! Sou iniciante na área e precisava de definições rápidas e claras a respeito de POO. O autor atingiu os objetivos de forma notável. Quanto ao Wilson sem comentários, Vai programar cara!!!!!
Por: Felipe
18/5/07
Parabéns meu caro Programador. Com este artigo tenho certeza que inúmeras pessoas poderão, até que enfim, começar a entender o que realmente é uma linguagem Orientada à Objetos. Eu já estou a mais de 2 anos na faculade, e até agora não tinha tido uma explicação tão simples e objetiva, e garanto que para todos aqueles que solicitei um auxílio sobre POO, e não conseguiram me explicar, será de excelente suporte. Espero que continue ajudando á todos...Fico muito agradecido...
Por: José Caldas Gois Jr.
10/6/07
Estava procurando um artigo para iniciar o meu filho no maravilhoso mundo das linguagens orientadas a objeto. Achei o artigo, simples, direto e bastante esclarecedor. Muito obrigado.
Por: Diego Silva dos Santos
29/6/07
Bom, Muito boa a instrução(Palhinha) Sobre POO, mais gostaria de saber como faço para me aprofundar mais sobre a respeito de poo, se consigo algum curso virtual gratuito..

Valeu Muito obrigado
Por: Bruna
07/8/07
Muiiiitiiisssiiimo bom. esse artigo sanou boa parte de minhas dúvidas sobre POO, não sei como tem gente que tem coragem de criticar, deve ser pela inveja, já que nunca seriam capazes de escrever um artigo sobre POO tão claramente...
Parabéns ao escritor, e gostaria de encontrar mais sobre o assunto.
Por: JOELSON
22/8/07
O seu artigo deu um show de 10 a 0 na aula da professora de Análise do meu curso.Parabéns
Por: André
27/11/07
Só quero parabenizá-lo por excelente artigo. Pode ter certeza que foi uma mão na roda pra muita gente.
Por: Anabela
11/12/07
Para mim que estou a iniciar-me neste mundo dificil da programação, era optimo que aparecessem mais artigos claros e simples como este. Foi uma excelente ajuda. Obrigada
Por: Rafael
13/2/08
Parabens!!! Achei super interessante, como ja foi dito em outros comentarios esta sendo uma forma com alta qualidade de ensino passando tudo para o leitor sem deixa-los enjoados do assunto.
Por: Victor
13/4/08
O artigo realmente está muito bom.
Continuo não acreditando em poo. Entendo a necessidade de tentar não criar uma torre de babel na programação, entendo a economia de tempo, mas não entendo a preguiça.
Programação é um tipo de poesia, ou você faz, ou você plagia.
Por: Zzzueh
12/6/08
Excelente o artigo sobre Orientação à Objetos... Sempre trabalhei com VB e ASP e agora começo a entender porque estou tão atrasado, rsss...
Por: andre
15/6/08

Fiz o curso técnico no Senai, e em umas das disciplinas tive aulas de C e
C++ Builder,não aprendi praticamente nada.
Quando o professor falava de classes, POO e entre outras funções que existem nesta linguagem,todos nós não entendiámos nada, inclusive aqueles alunos que não trabalhavam e ficavam no Senai até as 18:00 .
Estou de pleno acordo quando você comenta que são conceito avançado que custa explicar em poucas linhas. Mas o que foi exemplificado aqui, serviu para eu e muitas pessoas que gostaria de aprender C++ tirar dúvidas sobre classes e funções. Maravilhosos exemplos, felicidades.
Por: Carlos Anderson
04/7/08
Ótimo para quem nenhuma ou pouca diretriz tem do assunto, e em breves tópicos s pôde expor seus pontos fundamentais; fato curioso é que tal assunto foi tema de uma reunião aqui na empresa e,poucos têm uma posição definida como fez o autor deste artigo. E sem contradita está de parabéns, ao menos para mim adicionou mais conteúdo programático, no que tange à POO.
Por: Fabrizio
08/8/08
Muito bom, gostei de verdade, me ajudou bastante a esclarecer algumas dúvidas sobre POO.
Por: ricardo acras
22/8/08
Simples, direto, objetivo, claro e didático.
Como diria meu avô:
"Para esse artigo eu tiro o meu chapéu"
Por: leiag
01/10/08
Parabéns a equipe CriarWeb por colocar artigos como este. Sou autodidata e estudo ha algum tempo por aqui e devo dizer que já fiz cursos em outros sites porém nenhum se compara ao CriarWeb. Os outros dão uma pincelada no curso e vc tem que recorrer a outros métodos. Aqui não. Além dos cursos serem muito bem explicados, tem os exemplos e os workshops. A única ressalva é que alguns cursos não têm uma tradução muito boa. Mesmo assim são bem compreensíveis....Obrigada.
Por: Mauro Garcia
11/10/08
Parabens!
Simples e pratico, me tirou varias duvidas e esclareceu ideias vagas =D
Por: Ana maria
16/10/08
até que em fim alguem me ajudou a entender o que e poo
Polimorfismo
Por: petrolina
14/2/09
O polimorfismo serve para que não tenhamos que nos preocupar sobre o que estamos trabalhando, e abstrairmos para definir um código que seja compatível com objetos de vários tipos.

Eu não concordo com esta definicao acho que se aplicaria melhor a Encapsulamento.
POO
Por: Marcelo
26/2/09
Parabéns pela linguagem clara e exemplos utilizados.
10
Por: Flá
25/5/09
Este artigo é realmente muito bom. Claro, preciso e objetivo. Parabéns ao autor que consegue colocar em exemplos muito bons e numa linguagem fácil de entender.
boas
Por: anselmo
29/9/09
foi muito bom ter essa material em portugues e bem explicito que no inglês ate da sono a pessoa fica que nem o cd quando esta riscado toca sempre a mesma falha e o mesmo na leitura ate perceber a logica um diab a ler uma pagina que grande seca
Muito bom!
Por: kany
18/10/09
Gostaria de agradecer, o texto está claro e de fácil entendimento. Parabéns e obrigada.

Abraços...

Nivia
Parabéns
Por: nanda10
12/11/09
Essa explicação me tirou duvidas que tinha a tempos. Obrigada!
Parabens
Por: Weslley Melo
20/3/10
Esse artigo é fantástico, alem de preciso é claro e objetivo.
Como li alguns comentários desse artigo, concordo com alguns leitores de que, esse artigo é melhor do que aulas de alguns professores.
Mais uma vez parabéns.
Excelente
Por: josé bezerra
07/4/10
Mermão... muito F%da, tá de parabéns quem fez o artigo aew! Valeu mermo... me ajudou Pakas!
Congratulations
Por: VilasBoas
11/4/10
Congratulations, you should write a book and you publish it, it will be rich.
Muito bom!
Por: line
11/5/10
Estava totalmente perdida em relação a POO.
Este artigo me esclareceu muitas dúvidas!

Obrigada!!
POO
Por: Helber Marques
16/5/10
achei muito bacana esse texto nos explicando sobre a orientação a objetos, eu sou estudante do 3° ano de web design e sem sombra de duvida esse material me deu um grande auxilio!!!
artigo de POO
Por: abraão lenon
21/6/10
Excelente artigo, meus parabêns!!!
nota 10
Por: Hiran
24/6/10
Estava procurando algum artigo sobre POO, e este serviu como uma luva.
Explicação clara, direta e completa.

Obrigado.
Muito bom
Por: Edivam
25/7/10
Parabéns ao autor. Este artigo realmente é muito útil.Dá pra ter uma noção rápida de o que é e como funciona a POO.
POO
Por: Leandro
17/8/10
Parabéns otimo artigo muito bom mesmo...
Bastante claro
Por: Alfredo Capitamolo
09/9/10
Parabens, muito claro, objectivo e acima de tudo comunicativo, é, porque a explicação dada simplesmente conversa com que lê.

Obrigado
Parabéns Miguel Angel Alvarez
Por: jailsoncarneiro
09/2/11
Muito bom o artigo.
De forma simples o autor conseguiu explicar a POO.
elogio
Por: bertulino
13/3/11
Como todo bom professor que se utiliza da didática, você foi conciso, simples e objetivo. Parabéns pelo artigo. Continue nos trazendo coisas complexas da POO, através de contextos e palavras fáceis.

Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato