especialização e generalização em java

22
Programação II Diogo Vinícius Winck, Msc

Upload: diogo-winck

Post on 28-Jun-2015

3.593 views

Category:

Technology


7 download

DESCRIPTION

Material de aula

TRANSCRIPT

Page 1: Especialização e generalização em java

Programação IIDiogo Vinícius Winck, Msc

Page 3: Especialização e generalização em java

Objetivo

Os objetivos da aula de hoje são:• Generalização e especialização• Tipos de Herança

Page 4: Especialização e generalização em java

Quem pode definir o que é um especialista?

Page 5: Especialização e generalização em java

Um mecanismo que permite criar um tipo especial de uma classe de objetos modificando

algum o comportamento pré-existente.

Especialização é

Page 6: Especialização e generalização em java
Page 7: Especialização e generalização em java
Page 8: Especialização e generalização em java

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.

Page 9: Especialização e generalização em java

Liste exemplos de agregações.

Liste exemplos de especialização

Page 10: Especialização e generalização em java

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.

Page 11: Especialização e generalização em java

modelando

getNome(): StringgetSobrenome: StringgetSalario: double

Funcionario

nome: Stringsobrenome: Stringsalario: double

zerarVendas():voidaddVenda(valor:double):voidcalcularSalario():double

FuncionarioComissionado

comissao: doublevendas: double

Page 12: Especialização e generalização em java

Quantos métodos um objeto da Classe FuncionarioComissionado

possui?

Page 13: Especialização e generalização em java

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...

Page 14: Especialização e generalização em java

Exercício

Crie as classes:• Funcionário e • FuncionárioComissionado

• O método calcularSalario é definido por:• salario + (vendas * comissao)/100

Page 15: Especialização e generalização em java

Exercício

Crie um programa que utilize tanto funcionário quanto funcionário comissionado.

Page 16: Especialização e generalização em java

Interfaces

Considere a interface abaixo:

public interface VoadorInteface{public void decolar();public void voar();public void pousar();

}

Page 17: Especialização e generalização em java

Quais objetos implementam esta interface?

Podemos dizer que cada um deles possui a relação “é um” com esta interface?

Page 18: Especialização e generalização em java

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!

Page 19: Especialização e generalização em java

Quais são exemplos de composição?

Quais são exemplos de delegação?

Page 20: Especialização e generalização em java

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

Page 21: Especialização e generalização em java

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.

Page 22: Especialização e generalização em java

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.