A maior rede de estudos do Brasil

Grátis
75 pág.
Orientação a Objetos na Prática

Pré-visualização | Página 1 de 3

Orientação a Objetos na Prática
Entenda o contexto da modelagem de software e sistemas, descubra a 
importância e as principais características da orientação a objetos. 
Andre Luiz Monteiro da Costa
andre.monteiro@prof.infnet.edu.br
22
O paradigma da Orientação a Objetos
 Paradigma ==> forma de abordar um problema.
 Surgiu no fim dos anos 60.
 Hoje em dia, praticamente suplantou o paradigma 
anterior, o paradigma estruturado...
33
 Alan Kay, um dos pais do paradigma da orientação a 
objetos, formulou a chamada analogia biológica. 
 “Como seria um sistema de software que funcionasse 
como um ser vivo?
O paradigma da Orientação a Objetos
44
Analogia Biológica
 Cada “célula” interagiria com outras células através 
do envio de mensagens para realizar um objetivo 
comum.
 Adicionalmente, cada célula se comportaria como 
uma unidade autônoma. 
55
 De uma forma mais geral, Kay pensou em como 
construir um sistema de software a partir de agentes 
autônomos que interagem entre si. 
 Com isso, ele estabeleceu os princípios da orientação 
a objetos. 
Analogia Biológica
66
Orientação a Objetos - Princípios
 Tudo é um objeto. 
 Objeto = super variável: armazena dados, mas se 
pode fazer requisições a esse objeto, pedindo que ele 
faça operações sobre si próprio. 
Em teoria, qualquer elemento conceitual do problema 
pode ser representado como um objeto em um 
programa (Ex.: cachorros, livros, sócios, 
empréstimos, etc) . 
77
 Um programa é uma coleção de objetos dizendo uns 
aos outros o que fazer.
 
Para fazer uma requisição a um objeto você “manda 
uma mensagem” para este objeto. 
Mensagem = chamada de um procedimento ou função 
pertencente a um objeto em particular.
Orientação a Objetos - Princípios
88
 Um objeto pode ser composto por vários outros 
objetos
Um novo tipo de objeto pode ser criado a partir de 
objetos existentes. 
Dessa forma, complexidade pode ser adicionada a um 
programa e escondida por trás da simplicidade de 
uso dos objetos.
Orientação a Objetos - Princípios
99
 Todo objeto tem um tipo. 
Objeto = instância de uma classe, onde classe é um 
sinônimo de tipo. 
 A questão mais importante relativa a uma classe é 
“que mensagens eu posso enviar para uma instância 
dessa classe?”
Orientação a Objetos - Princípios
1010
 Todos os objetos do mesmo tipo podem receber as 
mesmas mensagens.
Orientação a Objetos - Princípios
 Na figura abaixo, o objeto “Círculo” 
aceita qualquer mensagem 
endereçada a uma “Forma 
Geométrica”. 
Essa capacidade de “subtituição” de 
um objeto por outro é um dos mais 
poderosos conceitos em orientação a 
objetos. (Herança)
1111
Abstração
 Inclui os aspectos relevantes de alguma 
coisa, ignorando os menos importantes.
1212
Objeto
• Definição:
• Um conceito, com significado específico em um 
contexto
• Propósito:
• Representar uma entidade do mundo real
• Objetos possuem:
• Identidade
• Características que determinam seu estado
• Comportamento específico definido por um 
conjunto de ações
1313
Exemplo
 Beija-Flor
Identidade:: ‘o beija-flor que vem ao meu jardim’
Estado:
penas azuis
bico fino
vôo rápido
Comportamento:
voar
piar
1414
 Pessoa
Identidade:: ‘Mário’
Estado::
olhos pretos
nasceu em 16/02/70
pesa 70kg
 mede 1,70m
Comportamento::
andar
falar
comer
rir
Exemplo
1515
Telefone
Identidade:: número 2576-0989
Estado::
azul
2.4 GHz
tone
Comportamento::
tocar
discar
Exemplo
1616
Representação
Mário
Estado
(características)
Comportamento
Identidade
Serviços, 
Interface ou 
protocolo
Objeto
1717
 Implementação
› Interface Visível
› Parte encapsulada (escondida)
Estado do Objeto 
(valor dos atributos)
Interface da Classe
Objeto
1818
Encapsulamento
 A interface de um objeto é o que ele conhece e o que 
ele sabe fazer, sem descrever como o objeto conhece 
ou faz.
 A interface de um objeto define os serviços que ele 
pode realizar (mensagens que ele recebe).
 Uma interface pode ter várias 
formas de implementação.
1919
Classe
 “fábrica de objetos”.
2020
Classe
› “Fábrica de Objetos”.
 Objetos:
 
› São instâncias de alguma classe.
› De uma classe são idênticos em sua interface e 
implementação.
› Diferem-se de outros por seu estado e sua 
identidade.
2121
• Segundo a OMG:
Classe – Notação Gráfica
2222
Implementação em Java
2323
Implementação em Java
2424
Classes
 
Classe
Instâncias
(objetos)
2525
Implementação em Java
2626
Implementação em Java
2727
Atributos
 Descrevem as características das instâncias de uma classe
 Seus valores definem o estado do objeto
 O estado de um objeto pode mudar ao longo de sua existência
 A identidade de um objeto, contudo, nunca muda
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
Funcionário_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
InformarSalário
CalcularIdade
2828
Serviços/Operações
 Representam o comportamento das instâncias de uma classe
 Correspondem às ações das instâncias de uma classe
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
Funcionário_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
InformarSalário
CalcularIdade
4000
3000
Informar 
Salário?
2929
Implementação em Java
3030
Serviços/Métodos
 Alguns métodos especiais:
› Construtores – criam objetos de uma classe
› Destrutores – destroem objetos de uma classe
3131
Passos para a criação de um objeto
 Declarar uma referência para o objeto (variável)
Funcionario funcionario;
 Criar uma instância do objeto
funcionario = new Funcionario();
O sistema operacional aloca espaço em memória para o novo 
objeto e preenche os seus atributos com valores default (zero 
para números, null para referências, false para booleanos, 
string vazia para Strings.
3232
 Se houver um método construtor, este é invocado
O método construtor é usado para alterar os valores default dos 
atributos, possibilitando que o objeto se torne disponível para a 
aplicação já em um estado pré-definido
 Modificação explícita do estado do objeto
funcionario.salario = 4000; //se atributo é público
funcionario.gravaSalario(4000); // caso contrário
A referência para o objeto pode ser usada para alterar o estado 
dos atributos do objeto.
Passos para a criação de um objeto
3333
Herança
 Derivar características de gerações precedentes. 
 Termo é associado com uma das formas de 
reutilização de software. 
 Através da herança, novas classes podem ser 
derivadas das classes existentes. 
 A nova classe herda propriedades e métodos da 
classe base. 
 A nova classe também pode adicionar suas 
próprias propriedades e métodos.
3434
 Para que serve a herança?
Considere a criação da ClasseB.
Que métodos estão disponíveis para objetos da 
ClasseB?
Herança
3535
Suponha que a ClasseB herda da ClasseA
Que métodos estão agora disponíveis para objetos da 
ClasseB ?
Herança
3636
 O objeto da classeB tem agora disponíveis os 
métodos da classe ClasseA, sem ter que reescrevê-
los na ClasseB.
 Um objeto da ClasseB também é um objeto da classe 
ClasseA. 
Herança
3737
Herança
 Facilita a manutenção do código: Os métodos não 
são replicados. Se for necessário alterar o código do 
método m3(), basta alterá-lo na ClasseA.
 A ClasseB pode "recusar" parte da herança, 
reimplementando os métodos herdados, 
sobrescrevendo-os.
3838
 
O método m3(), agora disponível para objetos da 
ClasseB, é aquele implementado em ClasseB.
Herança
3939
 Várias subclasses podem herdar da mesma 
superclasse (Herança Simples).
Herança
4040
 Em Java, não é permitido herdar de mais de uma 
classe (Herança Múltipla).
ERRADO!!!!
Herança
4141
Herança
 A hierarquia de herança pode ter vários níveis
 Que métodos estão agora disponíveis para uma 
instância de ClasseC?
4242
 Pode surgir a partir da refatoração de classes 
existentes, de modo