Aprenda um Pouco Sobre....POO
bart

PROGRAMAÇÃO ORIENTADA A OBJETO

A orientação a objetos é um novo paradigma de desenvolvimento de software que visa abordar o mundo real tal como ele é.
A sua filosofia básica deste paradigma esta em ver o domínio do problema como um conjunto de objetos que possuem características e comportamentos e comunicam-se através de mensagens.
A orientação a objetos facilita o desenvolvimento de sistemas complexos em menos tempo e com menos erros

Um objeto em OO é uma abstração de um objeto do mundo real.

“Abstração consiste em separar qualidades perceptíveis dos corpos, seja de outras qualidades ou de outros corpos aos quais elas se aplicam. Erros surgem quando essa separação é mal feita ou aplicada erradamente.” (Denis Diderot, Carta sobre os cegos para o uso dos que enxergam, 1749).

Sistemas Orientados a Objetos
Sistemas construídos como um conjunto de objetos (entidades) interativos que encapsulam dados e operações que atuam sobre esses dados.
A propagação da Orientação a Objetos foi impulsionado pelo:
Reuso de código
Facilidade de Manutenção
Modelagem do mundo real, tal qual ele é, através dos objetos comunicando-se por mensagens.
Modularidade

ADT (Abstract Data Types) – Tipos Abstratos de Dados
Uma especificação de conjuntos de dados e um conjunto de operações que podem ser executadas sobre esses dados.

Os sistemas OO são construídos como uma coleção de ADT’s.

Uma classe é um tipo abstrato de dados, ou seja, é uma implementação do conceito de ADT.

Uma classe é composta de atributos e métodos
Classe – Abstração - Objeto – Entidade Concreta
Objeto é a entidade que formaliza o modo pelo qual entendemos algo no mundo real.
O estado do objeto é definido pelas propriedades e os valores que elas assumem.
Os Atributos são a identidade do objeto
Ocorrência única
O conjunto de atributos descreve as propriedades da classes.
Os métodos definem o comportamento da classe, ou seja, as suas funcionalidades.

Encapsulamento

é o princípio de projeto pelo qual cada componente de um programa deve agregar toda a informação relevante para sua manipulação como uma unidade (uma cápsula). Aliado ao conceito de ocultação de informação, é um poderoso mecanismo da programação orientada a objetos.
Ocultação da Informação
apenas o necessário para sua operação deve ser revelado (tornado público)
permite que a classe sofra mudanças internas sem alterar a sua interação com as demais classes do sistema.

Herança

Herança é um mecanismo que permite que características comuns a diversas classes sejam fatoradas em uma classe base, ou superclasse. A partir de uma classe base, outras classes podem ser especificadas. Cada classe derivada ou subclasse apresenta as características (estrutura e métodos) da classe base e acrescenta a elas o que for definido de particularidade para ela.
É uma relação entre classes em que uma classe herda a estrutura de dados e o comportamento.
Possibilita reuso

Polimorfismo

Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação assinatura) mas comportamentos distintos, especializados para cada classe derivada.
Poli = muitos, morphos = formas
Possibilidade dos objetos de comportarem-se de maneiras diferentes, de acordo com a sua implementação, ao receber uma mesma mensagem.

Polimorfismo

Overriding (Reescrita)
Redefinição dos métodos herdados da superclasse
Possuem a mesma assinatura

Overload (Sobrecarga)
Métodos da mesma são escritos com listas de argumentos diferentes

“Modularidade: é a propriedade que um sistema tem de ser decomposto em um conjunto de módulos coesos e fracamente acoplados .”

Facilita a manutenção e evolução do software.

Java

Linguagem Híbrida
O compilador gera um código Intermediário – Bytecode
A máquina virtual Java (JVM) executa o Bytecode
Portabilidade – Independente de plataforma de hardware e de Sistema Operacional
Outras Linguagens OO
C++, C#, Python, SmallTalk, Delphi (Object Pascal), Ada 95, Eiffel, …

http://www.uern.br

moc.liamtoh|3ordnasl#!otatnoC

page_revision: 82, last_edited: 1219700114|%e %b %Y, %H:%M %Z (%O ago)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License