Você está na página 1de 4

Orientao a objetos

Orientao a objetos
Orientao a objetos Objeto Classe Instncia

Abstrao Mtodos Atributo Encapsulamento Herana Herana mltipla

Polimorfismo Outras referncias Padres de projeto UML Engenharia OO

A orientao a objetos um paradigma de anlise, projeto e programao de sistemas de software baseado na composio e interao entre diversas unidades de software chamadas de objetos. Em alguns contextos, prefere-se usar modelagem orientada ao objeto, em vez de programao. De fato, o paradigma "orientao a objeto", tem bases conceituais e origem no campo de estudo da cognio, que influenciou a rea de inteligncia artificial e da lingustica, no campo da abstrao de conceitos do mundo real. Na qualidade de mtodo de modelagem, tida como a melhor estratgia para se eliminar o "gap semntico", dificuldade recorrente no processo de modelar o mundo real do domnio do problema em um conjunto de componentes de software que seja o mais fiel na sua representao deste domnio. Facilitaria a comunicao do profissional modelador e do usurio da rea alvo, na medida em que a correlao da simbologia e conceitos abstratos do mundo real e da ferramenta de modelagem (conceitos, terminologia, smbolos, grafismo e estratgias) fosse a mais bvia, natural e exata possvel. A anlise e projeto orientados a objetos tm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se d atravs do relacionamento e troca de mensagens entre estes objetos. Na programao orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema de software. Cada classe determina o comportamento (definido nos mtodos) e estados possveis (atributos) de seus objetos, assim como o relacionamento com outros objetos. C++, C#, Java, Object Pascal, Objective-C, Python, SuperCollider, Ruby e Smalltalk so exemplos de linguagens de programao orientadas a objetos. ActionScript, ColdFusion, Javascript, PHP (a partir da verso 4.0), Perl (a partir da verso 5) e VB.NET so exemplos de linguagens de programao com suporte a orientao a objetos.

Orientao a objetos

Conceitos essenciais
Classe representa um conjunto de objetos com caractersticas afins. Uma classe define o comportamento dos objetos atravs de seus mtodos, e quais estados ele capaz de manter atravs de seus atributos. Exemplo de classe: Os seres humanos. Subclasse uma nova classe originada de sua classe pai (ver Herana). Objeto / instncia de uma classe. Um objeto capaz de armazenar estados atravs de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos. Exemplo de objetos da classe Humanos: Joo, Jos, Maria. Atributo so caractersticas de um objeto. Basicamente a estrutura de dados que vai representar a classe. Exemplos: Funcionrio: nome, endereo, telefone, CPF,...; Carro: nome, marca, ano, cor, ; Livro: autor, editora, ano. Por sua vez, os atributos possuem valores. Por exemplo, o atributo cor pode conter o valor azul. O conjunto de valores dos atributos de um determinado objeto chamado de estado. Mtodo definem as habilidades dos objetos. Bidu uma instncia da classe Cachorro, portanto tem habilidade para latir, implementada atravs do mtodo deUmLatido. Um mtodo em uma classe apenas uma definio. A ao s ocorre quando o mtodo invocado atravs do objeto, no caso Bidu. Dentro do programa, a utilizao de um mtodo deve afetar apenas um objeto em particular; Todos os cachorros podem latir, mas voc quer que apenas Bidu d o latido. Normalmente, uma classe possui diversos mtodos, que no caso da classe Cachorro poderiam ser sente, coma e morda. Mensagem uma chamada a um objeto para invocar um de seus mtodos, ativando um comportamento descrito por sua classe. Tambm pode ser direcionada diretamente a uma classe (atravs de uma invocao a um mtodo esttico). Herana (ou generalizao) o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos (mtodos) e variveis possveis (atributos). Um exemplo de herana: Mamfero super-classe de Humano. Ou seja, um Humano um mamfero. H herana mltipla quando uma sub-classe possui mais de uma super-classe. Essa relao normalmente chamada de relao " um". Associao o mecanismo pelo qual um objeto utiliza os recursos de outro. Pode tratar-se de uma associao simples "usa um" ou de um acoplamento "parte de". Por exemplo: Um humano usa um telefone. A tecla "1" parte de um telefone. Encapsulamento consiste na separao de aspectos internos e externos de um objeto. Este mecanismo utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente apenas os mtodos que alteram estes estados. Exemplo: voc no precisa conhecer os detalhes dos circuitos de um telefone para utiliz-lo. A carcaa do telefone encapsula esses detalhes, provendo a voc uma interface mais amigvel (os botes, o monofone e os sinais de tom). Abstrao a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando caractersticas menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe uma abstrao de entidades existentes no domnio do sistema de software. Polimorfismo consiste em quatro propriedades que a linguagem pode ter (atente para o fato de que nem toda linguagem orientada a objeto tem implementado todos os tipos de polimorfismo): Universal: Incluso: um ponteiro para classe me pode apontar para uma instncia de uma classe filha (exemplo em Java: "List lista = new LinkedList();" (tipo de polimorfismo mais bsico que existe). Paramtrico: se restringe ao uso de templates (C++, por exemplo) e generics (Java/C#). Ad-Hoc: Sobrecarga: duas funes/mtodos com o mesmo nome mas assinaturas diferentes.

Orientao a objetos Coero: a linguagem que faz as converses implicitamente (como por exemplo atribuir um int a um float em C++, isto aceito mesmo sendo tipos diferentes pois a converso feita implicitamente). Interface um contrato entre a classe e o mundo externo. Quando uma classe implementa uma interface, ela est comprometida a fornecer o comportamento publicado pela interface.[1] Pacotes so referncias para organizao lgica de classes e interfaces.[1]
[1] http:/ / java. sun. com/ docs/ books/ tutorial/ java/ concepts/

Referncias bibliogrficas
Carlos Sica.PHP Orientado a Objetos - Fale a Linguagem da Internet.1 ed.Rio de Janeiro:Cincia Moderna, 2006. Pablo Dall'Oglio. PHP Programando com Orientao a Objetos (http://www.adianti.com.br/phpoo): Inclui Design Patterns.1 ed.So Paulo:Novatec, 2007.pp. 576. ISBN 978-85-7522-137-2

Ver tambm
Padres de projeto de software Framework Classe

Ligaes externas
Pgina oficial da UML (http://www.uml.org/) (em ingls) cfoop.org OOP para ColdFusion (http://www.cfoop.org/) (em ingls) Conceitos de OOP em Java (http://java.sun.com/docs/books/tutorial/java/concepts/index.html) (em ingls) (Site oficial do Java na Sun Microsystems) Guia do Hardware: Programao Orientada a Objetos (http://www.guiadohardware.net/artigos/ programacao-orientada-objetos/) (em portugus) Conceitos de OOP em C++ (http://www.cplusplus.com/doc/tutorial/) (em ingls)

Fontes e Editores da Pgina

Fontes e Editores da Pgina


Orientao a objetos Fonte: http://pt.wikipedia.org/w/index.php?oldid=22454176 Contribuidores: Adailton, Agnaldo.anjos, Albmont, Alchimista, Alexandrepastre, Brunoslessa, ChristianH, Clara C., Dayane C., Denommus, Denys, Dmendes, Dr.Stefano, Eamaral, Edeyson, FML, FelipeVargasRigo, Francisco Leandro, GOE, GRS73, Gean, Giro720, Herbertdeborba, Hgfernan, Iacobus, Jorge.roberto, Joo Carvalho, Juntas, Kelving12, Lampiao, Leandromartinez, Leonardo.stabile, LeonardoG, LeonardoRob0t, Lourenzo, Lucas Avano, Lus Felipe Braga, Manuel Anastcio, MarceloB, Mauro Babinski, Nuno Tavares, OS2Warp, Pablodalloglio, Paulo Augusto Nardi, PauloColacino, Rafael.afonso, Rbourdon, Renatoalbano, Rg, Ricvelozo, Rjclaudio, Rlopes, Roma6, Romeuzinh, Salamat, Santana-freitas, Sica, Tschick, Tumnus, Wanc, X360xSilent LightStep, Xandi, Xurumelous, Yanguas, Zico J, 198 edies annimas

Licena
Creative Commons Attribution-Share Alike 3.0 Unported http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

Você também pode gostar