Aula 16 - Heranca Java

24
AULA 16 HERANÇA Disciplina: Programação Orientada a Objetos Professora: Alba Lopes [email protected]

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 of Aula 16 - Heranca Java

  • AULA 16

    HERANA

    Disciplina: Programao Orientada a Objetos

    Professora: Alba Lopes

    [email protected]

  • 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