aula 16 - heranca java
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.TRANSCRIPT
-
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