especialização e generalização em java

Post on 28-Jun-2015

3.593 Views

Category:

Technology

7 Downloads

Preview:

Click to see full reader

DESCRIPTION

Material de aula

TRANSCRIPT

Programação IIDiogo Vinícius Winck, Msc

Diogo Vinícius Winckdiogo.winck@gmail.com

gtalk: diogo.winck@gmail.comskype: 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.

top related