Upload
wildcorreia
View
268
Download
1
Embed Size (px)
DESCRIPTION
Apostila de java contedudo sobre heranças e abordando uma das mais complexa e mais usada linguagem mundial. java é uma das linguagem de programação orientada a objetos mais usando no merdado, e busca cada dia mais programadores nesta area.
Citation preview
AULA 16
HERANA
Disciplina: Programao Orientada a Objetos
Professora: Alba Lopes
REPETIO DE CDIGO
Tomemos como exemplo a classe Funcionario, que
representa o funcionrio de um banco:
REPETIO DE CDIGO
Alm de um funcionrio comum, h tambm outros
cargos, como os gerentes.
Os gerentes guardam a mesma informao que um
funcionrio comum, mas possuem outras informaes,
alm de ter funcionalidades um pouco diferentes
Vamos supor que, nesse banco, o gerente possui
tambm uma senha numrica que permite o acesso ao
sistema interno do banco
REPETIO DE CDIGO
Classe Gerente:
REPETIO DE CDIGO
Ao invs de criar duas classes diferentes, uma para
Funcionario e outra para gerente, poderamos ter
deixado a classe Funcionario mais genrica,
mantendo nela senha de acesso.
Caso o funcionrio no fosse um gerente, deixaramos
este atributo vazio (no atribuiramos valor a ele).
Mas e em relao aos mtodos?
A classe Gerente tem o mtodo autentica, que no faz
sentido ser acionado em um funcionrio que no
gerente.
REPETIO DE CDIGO
Se tivssemos um outro tipo de funcionrio, que
tem caractersticas diferentes do funcionrio
comum, precisaramos criar uma outra classe, e
copiar o cdigo novamente!
Ou ainda, se um precisssemos adicionar uma
nova informao (ex: data de nascimento) para
todos os funcionrios?
Todas as classes teriam que ser alteradas para receber
essa informao
SOLUO: Centralizar as informaes principais
do funcionrio em um nico lugar!
HERANA
Existe uma maneira, em Java, de relacionarmos
uma classe de tal maneira que uma delas herda
tudo que a outra tem.
Isto uma relao de classe me e classe filha.
No nosso caso, gostaramos de fazer com que o
Gerente tivesse tudo que um Funcionario tem:
Gostaramos que ela fosse uma extenso de
Funcionario
Fazemos isto atravs da palavra chave extends
HERANA
HERANA
Todo momento que criarmos um objeto do tipo
Gerente, este objeto possuir tambm os atributos
definidos na classe Funcionario, pois agora um
Gerente um Funcionario!
HERANA
Termos utilizados:
Classes que fornecem Herana Classes que herdam de outras
Superclasse Subclasse
Pai Filha
Tipo Subtipo
HERANA
Exemplo de notao UML
Funcionario
-nome: String
-cpf:String
-salario: double
+getNome(): String
+getCpf(): String
+getSalario; double
+setNome(String): void
+setCpf(String): void+setSaladio(double):void
Gerente
- senha: inteiro
+ autentica(int): boolean
HERANA
Exemplo de Teste da classe:
EXEMPLO 1
EXEMPLO 1
Usando a lgica de herana responda:
Quantos e quais so os atributos da classe Terrestre?
E da classe Automvel?
Respondendo:
a classe Terrestre possui dois atributos:
capacidade (que herdado de Transporte) e nmero de
rodas.
J a classe Automvel possui cinco atributos:
capacidade (herdado de Transporte), nmero de rodas
(herdado de Terrestre), cor, nmero de portas e placa.
EXEMPLO 1
Como seria o cdigo?
Veja o cdigo completo de cada
uma das classes no pacote
aula16_exemplos.Transporte
public class Transporte{
private int capacidade;
}
public class Terrestre extends Transporte{
private int numRodas;
}
public class Automovel extends Terrestre{
private String cor;
private int numPortas;
private String placa;
}
EXEMPLO 1
EXERCCIO
No projeto Exemplos_e_Exercicios_POO, crie
um pacote aula16_exercicios
1. Crie uma classe Animal que obedea seguinte descrio:
possua os atributos nome (String), comprimento (float), nmero de patas (int), cor (String), ambiente (String) e
velocidade mdia (float)
Crie um mtodo construtor que receba por parmetro os valores
iniciais de cada um dos atributos e atribua-os aos seus respectivos atributos.
Crie os mtodos get e set para cada um dos atributos.
Crie um mtodo dados, sem parmetro e do tipo void, que, quando chamado, imprime na tela uma espcie de relatrio
informando os dados do animal.
EXERCCIO
2. Crie uma classe Peixe que herde da classe
Animal e obedea seguinte descrio:
possua um atributo caracteristica(String)
Crie um mtodo construtor que receba por parmetro
os valores iniciais de cada um dos atributos (incluindo
os atributos da classe Animal) e atribua-os aos seus
respectivos atributos.
Crie ainda os mtodos get e set para o atributo
caracteristica.
Crie um mtodo dadosPeixe sem parmetro e do tipo
void, que, quando chamado, imprime na tela uma
espcie de relatrio informando os dados do peixe
(incluindo os dados do Animal e mais a caracterstica).
EXERCCIO
3. Crie uma classe Mamifero que herde da classe
Animal e obedea seguinte descrio:
possua um atributo alimento(String)
Crie um mtodo construtor que receba por parmetro
os valores iniciais de cada um dos atributos (incluindo
os atributos da classe Animal) e atribua-os aos seus
respectivos atributos.
Crie ainda os mtodos get e set para o atributo
alimento.
Crie um mtodo dadosMamifero sem parmetro e do
tipo void, que, quando chamado, imprime na tela uma
espcie de relatrio informando os dados do mamifero
(incluindo os dados do Animal e mais o alimento).
EXERCCIO
4. Crie uma classe TestarAnimais possua um
mtodo main para testar as classes criadas.
a) Crie um objeto camelo do tipo Mamfero e atribua os
seguintes valores para seus atributos:
Nome: Camelo
Comprimento: 150 cm
Patas: 4
Cor: Amarelo
Ambiente: Terra
Velocidade: 2.0 m/s
EXERCCIO
4. (cont.)
b) Crie um objeto tubarao do tipo Peixe e atribua os
seguintes valores para seus atributos
Nome: Tubaro
Comprimento: 300 cm
Patas: 0
Cor: Cinzento
Ambiente: Mar
Velocidade: 1.5 m/s
Caracteristica: Barbatanas e cauda
EXERCCIO
4. (cont.)
c) Crie um objeto ursocanada do tipo Mamifero e
atribua os seguintes valores para seus atributos:
Nome: Urso-do-canad
Comprimento: 180 cm
Patas: 4
Cor: Vermelho
Ambiente: Terra
Velocidade: 0.5 m/s
Alimento: Mel
EXERCCIO
4. (cont.)
d) Chame os mtodo para imprimir os dados de cada um
dos objetos criados.
REFERNCIAS
Caelum - Java e Orientao a Objetos
Mtropole Digital Programao Orientada a Objetos:
http://www.metropoledigital.ufrn.br/aulas/disciplinas/
poo/aula_10.html