You are on page 1of 13

Fundamentos de Orientao Objetos

Linguagem de Programao II Ivan Pagnoncelli

Orientao Objetos
Histrico:
Anos 60:
linguagem de programao SIMULA, j apresentava o uso de conceitos de O.O, neste caso, o uso de classes e sub-classes.

Anos 70:
primeira linguagem totalmente voltada a O.O, que a SMALLTALK. Ela foi criada pelos cientistas da XEROX PARC. C++ criado por Bjarme S. da AT&T Bell, linguagem que evoluiu do C, mas de fcil transio com conceitos de O.O.

Orientao Objetos
Anos 80:
Praticamente todas as linguagens de programao j apresentavam conceitos de O.O, como o Delphi, Java, C++, PASCAL, LISP, Cobol.3 entre outras. Ferramentas Case: Para a implementao da O.O podem ser utilizadas algumas ferramentas como a Rational Rose, System Architect, Together, Astah, entre outras.

Orientao Objetos
Vantagens:
maior facilidade para reutilizao de cdigo e por consequncia do projeto. possibilidade do desenvolvedor trabalhar em um nvel mais elevado de abstrao. utilizao de um nico padro conceitual durante todo o processo de criao de software. maior adequao arquitetura cliente/servidor. maior facilidade de comunicao com os usurios e com outros profissionais de informtica desenvolvimento acelerado de sistemas. possibilidade de se construir sistema muito mais complexos, pela incorporao de funes prontas. menor custo para desenvolvimento e manuteno de sistemas.

Orientao Objetos
Desvantagens
Complexidade no aprendizado para desenvolvedores de linguagens estruturadas. Maior uso de memria (heap), por exemplo para aplicaes mveis em JavaME. Maior esforo na modelagem de um sistema OO do que estruturado (porm menor esforo de codificao, sendo uma vantagem). Funcionalidades limitadas por interface, quando estas esto incompletas (problemas na modelagem). Dependncia de funcionalidades j implementadas em superclasses no caso da herana.

Orientao Objetos
Classe uma representao abstrata de um objeto. Objeto uma unidade a ser representada. Os objetos possuem caractersticas ( ou atributos ). Um conjunto de atributos define o estado do objeto. Objetos tambm possuem operaes ( mtodos ). Elas so utilizadas para manipular o estado do objeto.

Orientao Objetos
Encapsulamento: proteo aos dados e cdigos da classe.
Exemplo:
class Teste { int x; public int getx() { return x; } public void setx(int x) { this.x = x; } }

Orientao Objetos
Herana: relacionamento hierrquico entre duas classes. A classe filha pode utilizar atributos e mtodos da classe pai.
A classe filha pode definir seus prprios atributos e mtodos. Em Java no existe herana mltipla.
Classe Pai Classe Filha

Orientao Objetos
Polimorfismo: significa que a mesma operao pode se comportar de forma diferente em classes diferentes.
Exemplo: class Teste { String nome; int codigo;
public Teste(String n) { this.nome = n; } public Teste(int c) { this.codigo = c; }

public Teste(String n, int c) { this.nome = n; this.codigo = c; }


}

Orientao Objetos
Associao: relacionamento entre objetos.
Tipos:
unrio binrio multiplas

Agregao Composio

Orientao Objetos
Classes: abstrao de um objeto.
Visibilidade:
publica: qualquer cdigo que tenha acesso ao pacote a que a classe pertena poder acess-la. friendly (sem modificador): visvel apenas dentro do pacote.

Classes Abstratas x Interface


Classes abstratas possuem um ou mais mtodos abstratos. No pode ser instanciada. Todos os mtodos na Interface so abstratos. Contrato. Os atributos na interface so sempre public static final.

Orientao Objetos
Mtodos: so utilizadas para manipular o estado do objeto.
Visibilidade:
privado visvel dentro da classe. publico visvel ao mundo. protegido visvel dentro da classe, do pacote e nas classes filhas. friendly (Java) visvel dentro do pacote.

Mtodos Abstratos: no possui cdigo na classe que o definiu.

Orientao Objetos
Construtores:
Mtodos responsveis pela criao de instncias. Regras de definio:
identificar igual ao da classe. sem valor de retorno. se no for definido um construtor padro, a VM fornece um.

You might also like