Programação IIDiogo Vinícius Winck, Msc
Diogo Vinícius [email protected]
gtalk: [email protected]: diogo.wincksite: www.winck.biz
Objetivo
Os objetivos da aula de hoje são:• Generalização e especialização• Tipos de Herança
Quem pode definir o que é um especialista?
Um mecanismo que permite criar um tipo especial de uma classe de objetos modificando
algum o comportamento pré-existente.
Especialização é
Cria uma relação entre duas classes do tipo “é um”.
Especialização
Agregação cria uma
relação do tipo: “tem
um”
Quando uma classe
especializada possui
todos os atributos e
comportamentos da
classe genérica.
Liste exemplos de agregações.
Liste exemplos de especialização
Por que não usar o termo herança?
Herança implica em:• Duas pessoas diferentes• Uma pessoa morre• Outra ganha o espólio...
Mas:• Uma tesoura de criança é um tipo especial de tesoura:
só existe um objeto, não há morte e não tem espólio.
modelando
getNome(): StringgetSobrenome: StringgetSalario: double
Funcionario
nome: Stringsobrenome: Stringsalario: double
zerarVendas():voidaddVenda(valor:double):voidcalcularSalario():double
FuncionarioComissionado
comissao: doublevendas: double
Quantos métodos um objeto da Classe FuncionarioComissionado
possui?
Superclasse e subclasse
• Superclasse é a classe mais genérica (também chamada de classe mãe).
• Subclasse é a classe mais especializada (também é chamada de classe filha)
NumberFormat
ChoiceFormat DecimalFormat
Super
SubSub
Uma superclasse
não deve conhecer
suas subclasses...
Exercício
Crie as classes:• Funcionário e • FuncionárioComissionado
• O método calcularSalario é definido por:• salario + (vendas * comissao)/100
Exercício
Crie um programa que utilize tanto funcionário quanto funcionário comissionado.
Interfaces
Considere a interface abaixo:
public interface VoadorInteface{public void decolar();public void voar();public void pousar();
}
Quais objetos implementam esta interface?
Podemos dizer que cada um deles possui a relação “é um” com esta interface?
Algumas informaçõesComposição: uma classe implementada usando objetos (classes) como propriedades internas.
Delegação: é o processo onde um objeto passa uma mensagem para outro objeto, para que este forneça algum serviço (execute um método).
Herança Múltipla: quando há mais de uma superclasse. Não é completamente suportado no java!
Quais são exemplos de composição?
Quais são exemplos de delegação?
Visibilidade
Impõe uma relação entre superclasse e a subclasse.
• Público: totalmente acessível tanto no escopo entre super/sub quanto com qualquer outra classe
• Protegido: Acessível somente no escopo super/sub.
• Privado: acessível somente no escopo da classe.
Uma subclasse não
deve alterar a
visibilidade para
uma acessibilidade
maior
aces
sibi
lidad
e
Trabalho para próxima aula
• Elaborar um estudo sobre a API Collections do Java.• O que é uma API?• Quais interfaces ela disponibiliza?• Quais classes ela disponibiliza?• Qual a diferença entre um ArrayList e um LinkedList?• O que são Maps?• O que são Hash?
• Deve ser elaborado uma apresentação e um artigo. Alguns pessoas serão convidadas a apresentar.
• Pode ser em dupla.
Referências Bibliográficas• As imagens foram pesquisadas junto a banco de imagens da
Microsoft.• SINTES, Anthony. Aprenda programação orientada a objetos em
21 dias. 1. ed. São Paulo: Pearson Makron Books, 2002-2010.