Documente Academic
Documente Profesional
Documente Cultură
Programao
1
Regras de desenvolvimento
3
Abstrao
Processo mental que consiste em escolher ou isolar
um aspecto determinado de um estado de coisas
relativamente complexo, a fim de simplificar a sua
avaliao, classificao ou para permitir a
comunicao do mesmo.(Houaiss 2006)
Abstraes ajudam a gerenciar a complexidade do
software. (Shaw, 1984)
Fonte: POO, Andr Santanch UNICAMP - 2011
4
Abstraes do dia a dia
5
Tipo Abstrato de Dados (TAD)
Um tipo abstrato de dados define uma classe de
objetos abstratos que completamente
caracterizada pelas operaes disponveis nestes
objetos. Isto significa que um tipo abstrato de dados
pode ser definido pela definio e caracterizao das
operaes daquele tipo. (Liskov, 1974)
Fonte: POO, Andr Santanch UNICAMP - 2011
6
Abstrao e Encapsulamento
7
Abstrao de Dados
Descreve as caractersticas essenciais de uma
entidade que as distinguem de todos os outros tipos
de entidades;
Vantagens:
Cdigo e estrutura de dados em um mesmo lugar
(legibilidade e facilidade de alterao);
Ocultamento de informao, proporciona proteo
contra acessos inesperados (integridade da abstrao)
8
Orientao a Objetos
9
Abstrao de Classes
Abstraes de objetos do mundo real
Cada classe deve representar um conceito
Exemplos: Pessoa, Veiculo, Tabela, Janela, Data
Um conceito pode ser descrito por atributos
Exemplos:
Pessoa: nome, data nascimento, nacionalidade, sexo...
10
Modelo de Objetos: princpios
A computao vista como conjuntos de objetos
agrupados em classes de objetos similares que
interagem atravs da troca de mensagens
Cada classe um modelo esttico que permite
especificar um conjunto de caractersticas do conceito
que representa
Cada objeto uma entidade dinmica criada a partir
de uma classe e possui os dados sobre os quais so
realizadas as operaes disponveis em sua classe
11
Programa OO: elementos
Componentes bsicos: classes, objetos, mensagens
Classes
campos + mtodos
descritores no executveis: tipos de dados
Objetos
variveis (dinmicas) criadas a partir de classes
podem ser criados, copiados, destrudos, passados
como argumentos, devolvidos como resultado....
Mensagens
invocao de mtodos descritos na classe
atuam sobre objetos
12
Classes e Objetos
Especifica um conjunto de propriedades e
comportamento de um molde especfico;
utilizada para modelar entidades do mundo real;
Todo objeto instancia de apenas uma classe;
A comunicao entre objetos realizada por troca
de mensagens
Mtodos Dados
13
Objeto e Classe
Exemplo:
ContaEmBanco uma classe.
A conta do Donald e a tio Patinhas so instncias
14
Membros
15
Membros
Abrir Nome
Encerrar
Saldo
Depositar
Sacar
Profisso
ConsultarSaldo Atributos
(Parte escondida)
18
LOO: Classes x Objetos
Classes no reservam
memria para variveis
(campos)
Personagem
Cada objeto, quando
instanciado, ocupa espao nome: String;
de memria para seus nome idade sexo idade: Int;
dados sexo: String
Cada objeto possui uma void lista()
identidade (nome)
Cada objeto possui um
tipo
Cada objeto possui suas p1: Personagem
variveis e seus valores
(estado) nome: Ana Terra;
Vrios objetos podem ser idade: 20; objeto
criados a partir de uma sexo: feminino UML
mesma classe 19
LOO: classes e mtodos
Um mtodo uma abstrao
procedimental: operaes que Personagem
atuam sobre dados/argumentos
nome: String;
Mtodos (cdigo) so idade: Int;
sexo: String
compartilhados entre todos os
objetos de uma classe void
lista()lista ()
{ imprime(nome);
imprime(idade);
imprime(sexo); }
p1: Personagem
nome: Ana Terra;
idade: 20; p2: Personagem
sexo: feminino
nome: Rodrigo;
idade: 35;
sexo: masculino 20
Objetos e mensagens
21
Anlogo a uma chamada de funo
Objetos e mensagens
p2: Personagem
p1: Personagem
nome: Rodrigo;
nome: Ana Terra; idade: 35; p2.lista()
idade: 20; p1.lista() sexo: masculino
sexo: feminino
26
Classes: especializao/generalizao
mais especializadas
GENERALIZAO
Especializao: adio e
redefinio de propriedades
Graduao Ps graduao
Ps-graduao
ESPECIALIZAO
HIERAQUIA DE CLASSES
27
Herana
(80s) Reutilizao de SW = + produtividade;
Unidades a serem reutilizadas: tipos de dados
abstratos, encapsulamentos e controles de acesso;
Reutilizao de TAD: exige modificao;
Qual seria a soluo?
Se um TAD puder herdar os dados e as
funcionalidades de algum tipo existente, e tb for
possvel incluir novas funcionalidades?
Herana: derivar novas classes a partir de outras j
existentes atravs de um processo de refinamento.
28
Herana
A herana permite uma nova classe estender uma
classe existente
A nova classe herda os membros da classe que se
estende
Ela ajuda a especializar uma classe de uma classe
existente
classe abelhas e classe gafanhotos so duas classes
especializadas da classe insetos
Ela tambm ajuda a generalizar os membros comuns
de muitas classes em uma nova classe
Sedan, picape, SUV tm caractersticas comuns de um
carro
29
Herana(Cont)
30
Herana uma relao
A lgica :
Todo inseto tm certas caractersticas em comum e pode ser
descrito por uma classe de Inseto
O gafanhoto tem suas prprias caractersticas nicas para ser
descrito por uma classe Gafanhoto
A abelha tem suas prprias caractersticas nicas para ser descrito
por uma classe Abelha
31
Herana uma relao
Um " uma" relacionamento implica que o objeto especializado tem
todas as caractersticas do objeto generalizado
O objeto especializado tem caractersticas adicionais que o tornam
especial, que o objeto generalizado no tem
32
Classe Base e Derivada
A Herana envolve classes base e derivadas
A classe base a classe generalizada e s vezes chamada de
superclasse
A classe derivada a classe especializada e s vezes chamada
subclasse
Voc pode pensar a classe derivada como uma verso estendida
da classe base
A classe derivada herda os campos, propriedades e mtodos da
classe base, sem que nenhum deles tenha que ser reescrito
Novas campos, propriedades e mtodos podem ser adicionados
classe de derivadas para torn-la especial
33
Herana - Notao
Assuma que existe uma classe Automvel:
class Automovel
{
Membros.
}
34
Exemplos
Um inventrio da concessionria inclui trs tipos de automveis:
carros, pickup trucks, and SUVs
A concessionria mantm os seguintes dados:
Fabricante Automvel
Ano modelo
Km
Carros Pickup SUV
Preo
Cada tipo de veculo, que mantido em inventrio tem os dados
gerais acima
Cada tipo de veculo tambm tem seus prprios dados
especializados, como mostrado abaixo:
Itens Carros Pickups SUVs
Ator Aluno
contrato numMatric
curso
37
Implementao de Herana:C#
40
Formas de Polimorfismos
Redefinio (overriding): mesma funo mas
comportamentos diferentes.
Sobrecarga(overloading): nome de uma funo
usado mais de uma vez com diferentes tipos de
parmetros.Ex: operao soma com dois parmetros
reais e outra com parmetros inteiros.
41
Redefinio de funo
Exemplo:
Tio Patinhas possui uma ContaEspecial.
Donald possui uma ContaComum.
Ambos possuem ContaEmBanco.
Exemplo:
Classe ContaEmBanco
O mtodo Abrir faz as vezes de um
inicializador dos objetos ContaEmBanco.
Esta inicializao parte integrante da
fase de construo do objeto: uma mesma
conta no ser aberta diversas vezes !!!
45
Construtor
Exemplo:
Classe ContaEmBanco
Exemplo:
Classe ContaEmBanco
O mtodo Encerrar faz as vezes de um finalizador
dos objetos ContaEmBanco.
Nesta finalizao, as informaes correspondentes
ao objeto conta so destrudas
47
Correpondncia de Termos
48
Desenvolvimento de Programas OO
concepo do modelo
objetos encapsulados
objetos se comunicando por mensagens
definio de classes
objetos com caratersticas idnticas
contruo da hierarquia de classes
generalizao ou especializao
descrio das classes na LOO
desenvolvimento de aplicaes
programa = classes (declaraes de vars + rotinas)
instanciao (alocao de memria para
ponteiros)
mensagens (chamadas a subrotinas)
49
Sinais de maturidade da tecnologia OO
requer
treinamento
escolha de novo mtodo de desenvolvimento
ferramentas, ambiente de programao
banco de dados, sistema operacional
influncia
gerncia, produo, teste, instalao, venda
convencer corpo gerencial e tcnico
51
Exerccio
52
Exerccio
Classe Lista
Inserir
Retirar
Listar
NmeroElementos
53
Exerccio
Classe Lista
Nelemento
Inserir Listar
Retirar NbElementos
Deque
Inserir
Retirar
54
Exerccio
Classe Lista
Nelemento incio, fim
Inserir Listar
Retirar NbElementos
Inserir Listar
Retirar Inserir Listar
Retirar
Deque
Inserir
Retirar
55