Вы находитесь на странице: 1из 26

O que Orientao a Objetos

Paradigma utilizado na computao que se tornou essencial em


muitas das linguagens de programao amplamente utilizadas na
indstria de software, como C++, Object Pascal, C#, Java, entre
outras.
Neste paradigma, tudo pode ser potencialmente representado como
um objeto.
Umobjeto um elemento computacional que representa alguma
entidade (abstrata ou concreta) do problema sob anlise.
Sob o ponto de vista da programao, um objeto no muito
diferente de uma varivel no paradigma de programao
convencional.
6/18/15

Universidade Feevale 2015/01

2 de 31

Orientao a Objetos Tcnicas


Abstrao;
Classes;
Herana;
Polimorfismo;
Ligao dinmica;
Encapsulamento;
Concorrncia;
Coletor de lixo;
Persistncia de objetos;
Generalizao.
6/18/15

Universidade Feevale 2014/01

3 de 31

Orientao a Objetos Tcnica


Abstrao
Conceito:
Capretz (2003) aponta que a abstrao uma tcnica que
ajuda a lidar com a complexidade. Envolve uma seletiva
anlise de determinados aspectos de uma aplicao, cujo
objetivo isolar os aspectos que so importantes para uma
compreenso da aplicao. Alm de suprimir os aspectos
irrelevantes, as classes e os objetos so a forma das
abstraes de uma aplicao.

6/18/15

Universidade Feevale 2014/01

4 de 31

Orientao a Objetos Tcnica


Abstrao
As caractersticas essenciais de uma entidade so conhecidas como abstrao.
Cor: Amarelo, verde;
Tipo: Automvel, tanque;
Pneu: Tipo, largura;
Rodas: Quantidade, tamanho;
Andar: Para frente ou para trs;
Direo: Direita ou esquerda.

Vejamos a entidade veculo:

As caractersticas podem indicar um dado/estado, por exemplo, a cor amarelo, ou


um comportamento/mtodo: andar para frente.
6/18/15

Universidade Feevale 2014/01

5 de 31

Montar uma abstrao


Problema:
Nossa instituio se relaciona com diversos pblicos, sendo
assim, necessrio um cadastro para este pblico.

Criar um abstrao que rena as mesmas


caractersticas de todos os pblicos com o qual a
instituio se relaciona.

6/18/15

Universidade Feevale 2014/01

6 de 31

Orientao a Objetos Tcnica


Classes
Conceito:
Buyya et al. (2009) definem que a estrutura de software que
suporta a abstrao de dados conhecida como classe. Uma
classe um tipo de dados que captura a essncia de uma
abstrao. A classe um prottipo ou modelo que define
caractersticas diferentes. Um recurso pode ser um dado ou
uma operao;
Os dados so representados por variveis de instncia ou
variveis de dados de uma classe;
As operaes tambm so conhecidas como comportamentos,
mtodos ou funes.
6/18/15

Universidade Feevale 2014/01

7 de 31

Orientao a Objetos Tcnica


Classes

Segundo Meyer (2000), cada classe corresponde a uma abstrao bem definida.
Classe um tipo de dados que captura a essncia de uma abstrao.

6/18/15

Universidade Feevale 2014/01

8 de 31

Orientao a Objetos Tcnica


Classes
Com a abstrao realizada anteriormente, possvel definir a seguinte classe:

6/18/15

Universidade Feevale 2014/01

9 de 31

Montar uma classe


Problema:
Apesar de a abstrao estar definida, nosso sistema de
cadastro ainda no tem nada implementado, agora vamos
criar a classe que ser base para nosso sistema.

Criar uma classe a partir da abstrao feita.

6/18/15

Universidade Feevale 2014/01

10 de 31

Orientao a Objetos Tcnica


Herana
Conceito:
A herana , segundo Meyer (2000), um suporte para
reutilizao ou extenso de classes, o que exige
aproveitamento das fortes relaes conceituais que possuem
entre entidades (classes), j que uma classe pode ser uma
extenso, especializao ou a combinao de ambos.

6/18/15

Universidade Feevale 2014/01

11 de 31

Orientao a Objetos Tcnica


Herana

6/18/15

Universidade Feevale 2014/01

12 de 31

Montar as classes de herana


Problema:
Quando fizemos a abstrao, percebemos que dois tipos de
pessoas praticamente se relacionam com a instituio, pessoa
fsica e pessoa jurdica, agora a hora de colocar em forma de
classe que herda as caractersticas especficas de cada uma
delas.

Criar uma classe que herda a classe anterior e sua


especializao.

6/18/15

Universidade Feevale 2014/01

13 de 31

Orientao a Objetos Tcnica


Polimorfismo
Conceito:
O polimorfismo permite que um objeto possa ser processado de
diferentes maneiras, por tipos de dados e/ou classes de dados,
ou seja, trata-se da capacidade de resposta de diferentes
objetos a uma mesma mensagem, permitindo-se ento, que um
nico nome ou operador possa a ser associado a diferentes
operaes.
Dependendo do tipo de dados disponveis, h a possibilidade de
redefinir um mtodo dentro de uma classe derivada (BUYYA et
al., 2009).
6/18/15

Universidade Feevale 2014/01

14 de 31

Orientao a Objetos Tcnica


Polimorfismo
O mtodo Direcao das classes avio e Passeio so exemplos de polimorfismo, pois

quando o objeto passeio o que o objeto vira o volante e quando for o avio o
manche, mesmo assim ambos tem a mesma assinatura, pois viram para algum lado.

6/18/15

Universidade Feevale 2014/01

15 de 31

Montar um mtodo que caracterize


o polimorfismo
Problema:
Alm de cadastrar a informao, qualquer ferramenta deve
prover o acesso a mesma.

Criar um mtodo virtual na classe pessoa que permita


buscar a pessoa seja ela fsica ou jurdica com a mesma
assinatura.

6/18/15

Universidade Feevale 2014/01

16 de 31

Orientao a Objetos Tcnica


Ligao dinmica
Conceito:
A ligao dinmica exerce grande influncia sobre a estrutura
de aplicaes orientadas a objeto, uma vez que permite que os
desenvolvedores escrevam chamadas simples para designar o
que se constitui em vrias ligaes possveis.
Dependendo da correspondente situao em tempo de
execuo, por exemplo, a chamada do recurso
PessoasNoVeiculo() na classe avio. A ligao dinmica deve
evitar a de repetio de testes (Se passageiro?, Se
tripulante?) que flagelam software escrito com abordagens
mais convencionais (MEYER; 2000).
6/18/15

Universidade Feevale 2014/01

17 de 31

Montar um mtodo que caracterize


a ligao dinmica
Problema:
A empresa precisa de um total de clientes ativos,
independente se fisica ou jurdica.

Criar uma srie de mtodos que permitam que um s


mtodo rena suas informaes.

6/18/15

Universidade Feevale 2014/01

18 de 31

Orientao a Objetos Tcnica


encapsulamento
Conceito:
Pode-se afirmar que encapsulamento tem o objetivo de
esconder, dentro de uma cpsula, a inteligncia do software
desenvolvido, tal qual uma capsula de remdio.
Buyya et al. (2009), usa esta analogia ao afirmar que sob o
ponto de vista do usurio, um nmero de caractersticas so
acondicionadas em uma cpsula, a fim de formar uma
entidade. Esta entidade oferece servios por meio de interfaces,
cujo objetivo esconder os detalhes de implementao.

6/18/15

Universidade Feevale 2014/01

19 de 31

Orientao a Objetos Tcnica


encapsulamento
Suponhamos que nossa classe Aviao contenha a
seguinte propriedade:
public List<String> Passageiros { get; set; }

Pelo fato de ser pblica ela aceita qualquer tipo de


adio ou subtrao direta, sem nenhuma proteo;
Agora eu poderia criar uma nova classe chamada
ListaPassageiros, esta classe teria suporte a adio e
subtrao de passageiro atravs de mtodos prprios
publicos, mas a lista seria um campo privado, evitando
assim que o programador que no tem acesso a classe
manipule diretamente a lista.
6/18/15

Universidade Feevale 2014/01

20 de 31

Montar um mtodo que caracterize


o encapsulamento
Problema:
A instituio precisa controlar os movimentos financeiros dos
alunos por um saldo, porem este dado poder ser alimentado
por terceiros, por exemplo, o Tiririca.

Criar uma maneiro em que o saldo no fique exposto ao


instanciar um objeto do tipo aluno.

6/18/15

Universidade Feevale 2014/01

21 de 31

Orientao a Objetos Tcnica


Concorrncia
Conceito:
Buyya et al. (2009) afirma que so meios programveis de
concorrncia, o uso de threading, a sincronizao e o
escalonamento.
O uso de concorrncia tambm permite complexidade adicional
para o desenvolvimento de aplicaes, permitindo a elas mais
flexibilidade.

6/18/15

Universidade Feevale 2014/01

22 de 31

Orientao a Objetos Tcnica


Coletor de lixo
Conceito:
O coletor de lixo, ou garbage collector, uma facilidade includa
no sistema em tempo de execuo para a linguagem de
programao.
Coletores de lixo clssicos so ativados sob demanda e sempre
rodam para a concluso de uma tarefa.
Em outras palavras, o coletor de lixo est inativo desde que
haja memria para o aplicativo, quando o aplicativo
executado com falta de memria, disparado o ciclo de coleta
de lixo, onde recursos em desuso so eliminados da memria
(MEYER; 2000).
6/18/15

Universidade Feevale 2014/01

23 de 31

Orientao a Objetos Tcnica


Persistncia de objetos
Conceito:
A persistncia o conceito de que um objeto (um conjunto de
dados) sobrevive aps a execuo do programa, ou seja, entre
fechar e abrir o programa novamente.
Todos os sistemas de banco de dados possuem suporte a
persistncia, mas sua persistncia nem sempre so compatveis
com as linguagens de programao.
No entanto, a persistncia pode ser simulada atravs do uso de
fluxos de arquivos que so armazenados no sistema de
arquivos do sistema operacional (BUYYA et al., 2009).
6/18/15

Universidade Feevale 2014/01

24 de 31

Orientao a Objetos Tcnica


Generalizao
Conceito:
Meyer (2000) afirma que a generalizao o processo de
transformar elementos especializados do programa em
componentes de software reutilizveis em diversas frentes.
Buyya et al. (2009) aprofunda tal considerao ao afirmar que a
generalizao identifica as propriedades e os comportamentos
comuns em abstraes. A diferena que a abstrao visa
simplificar a descrio de uma entidade, enquanto
generalizao identifica semelhanas entre um conjunto de
abstraes.
Generalizaes so importantes, pois so como "leis" ou
"teoremas", que estabelecem
a base para muitas coisas. A 25 de 31
6/18/15
Universidade Feevale 2014/01
generalizao ajuda a desenvolver software capturando a ideia

Object Oriented for Dummies


Prof. Esp. merson Butzen
OBRIGADO!

butzen@feevale.br
Novo Hamburgo, abril de 2015.

Вам также может понравиться