![Page 1: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/1.jpg)
POO, em Java,
com Eclipse e Netbeans
![Page 2: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/2.jpg)
Tópicos da aula
1. A pilha e a heap2. Criando objetos3. Herança4. Exemplo de herança
![Page 3: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/3.jpg)
A pilha e a heap
![Page 4: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/4.jpg)
A Lição de anatomia do Dr. Tulp
![Page 5: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/5.jpg)
A pilha e a heap
Heap
Pilha
Onde as coisas
residem
![Page 6: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/6.jpg)
Pilha
Pilha
![Page 7: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/7.jpg)
Heap
Heap
![Page 8: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/8.jpg)
Um monte de bicicletas
![Page 9: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/9.jpg)
Tipos de variáveis
Variáveis
Instância
Locais
Declaradas dentro de um método, inclusive como parâmetros do
método
Declaradas dentro de uma classe, mas não
dentro de um método
![Page 10: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/10.jpg)
Tipos de variáveis
Variáveis locais
Precisam ser inicializadas sempre
São inicializadas automaticamente
![Page 11: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/11.jpg)
A pilha e a heapPilha
Heap
Na pilha residem as variáveis locais,
referências a objetos e chamadas a
métodos
Na heap residem os objetos e as
variáveis de instância
![Page 12: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/12.jpg)
Criando objetos
![Page 13: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/13.jpg)
A criação de Adão
![Page 14: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/14.jpg)
Criando um
objeto de uma
classe
nome da classe
lista de argumentos
new ( )
Ou criando instanciando a
classe
![Page 15: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/15.jpg)
Criando bicicletas
![Page 16: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/16.jpg)
As três etapas do
milagre da criação
a
heappilha
![Page 17: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/17.jpg)
Chamando um construtorde outro
Ele precisa ser o primeiro comandoEle só pode ser usado em construtores
![Page 18: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/18.jpg)
Exemplo
![Page 19: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/19.jpg)
Exemplo
![Page 20: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/20.jpg)
A auto-referência this
Cada objeto pode acessar uma referência a si próprio por meio da
palavra-chave this
this.< nomeDaVariávelDeInstância >
![Page 21: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/21.jpg)
Exemplo com this
![Page 22: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/22.jpg)
Exemplo com this
![Page 23: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/23.jpg)
Herança
![Page 24: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/24.jpg)
![Page 25: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/25.jpg)
Herança
Classe A
Classe B
Classe mãeou
Super-classe
Classe filhaou
Sub-classe Conforme os atributos
de visibilidade, a sub-
classe herda as
características da super-classe
![Page 26: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/26.jpg)
Herança – como descobrir ?
Classe A Classe B
B é sub-classe de A ?isto é,
B estende A ?Faça o teste:
B é uma A?
![Page 27: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/27.jpg)
Classe C
Classe G
Classe D
Classe F
Classe B
Classe E
Super-classes de C
Sub-classes de C
Classe A
Herança
![Page 28: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/28.jpg)
Classe CClasse B
Object
É a classe mãe de todas as outras classes em Java
Classe D
A classe Object
![Page 29: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/29.jpg)
A classe Object
Por exemplo:
• getClass( )
• equals( )
• toString( )
![Page 30: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/30.jpg)
Herança e visibilidade
Private Default Protected Public
Mesma classe Sim Sim Sim Sim
Outra classe, mesmo pacote
Não Sim Sim Sim
Sub-classe, outro pacote
Não Não Sim Sim
Fora de sub-classe, outro pacote
Não Não Não Sim
Acesso permitido
Herança
![Page 31: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/31.jpg)
Herança – reutilização de campos
Classe A
Classe B Classe D
Classe C
Campo 1
...
Campo N
![Page 32: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/32.jpg)
Podem ser criados campos novos, inclusive com o mesmo nome. Nesse
caso campo correspondente da super-classe é ocultado
Campo 1
Campo 2Classe A
Classe B
Campo 3
Herda os camposCampo 1
Campo 2
o Campo 3 é novo
Herança – reutilização de campos
![Page 33: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/33.jpg)
Herança – reutilização de métodos
Classe A
Classe B Classe D
Classe C
Método 1
...
Método N
![Page 34: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/34.jpg)
Classe A
Classe B
Classe C
Método 3
Sub-classes precisam implementar apenas
aquilo que acrescentam à super-classe
Método 1
Método 2
Método 4
A Classe C herda o Método 1 e o Método 2
da Classe A e oMétodo 3 da Classe B
Herança – reutilização de métodos
![Page 35: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/35.jpg)
Classe A
Classe B
Herança – sobrescrevendo/ocultando
Método 1
Método 2
Método 2
![Page 36: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/36.jpg)
Quando sobrescrever
métodos
![Page 37: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/37.jpg)
Como derivar sub-classes ?
Pessoa
Estudante Professor
Classe mãe
Classe filha
Classe filha
![Page 38: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/38.jpg)
public class Pessoa{
protected String nome;
protected String endereco;
...
}
public class Estudante extends Pessoa {
...
}
Declaração da classe mãe
palavra-chave
Declaração da classe filha
Classemãe
![Page 39: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/39.jpg)
Os construtorespublic class Pessoa{
protected String nome;
protected String endereco;
public Pessoa(){
System.out.println(“Construtor, a partir
de Pessoa”);
nome = ""; endereco = "";
}
. . . .
}
public class Estudante extends Pessoa {
public Estudante(){
System.out.println(“Construtor, a partir
de Estudante”);
}
. . . .
}
Construtor deEstudante
Construtor dePessoa
![Page 40: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/40.jpg)
Chamadas aos construtores
Quando um objeto de uma sub-classe é instanciado, o construtor default da super-classe,
é invocado implicitamente, antes do construtor da sub-classe ser invocado
public static main( String[] args ) {
Estudante gilberto = new Estudante();
}
Construtor, a partir de Pessoa
Construtor, a partir de Estudante
Criando gilberto
um objeto da classe
Estudante
![Page 41: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/41.jpg)
A palavra-chave super
Tal chamada resultará na execuçãodo construtor relevante (aquele
associado aos parâmetros passados) da super-classe
Uma sub-classe pode, também, chamar
explicitamente um construtor da super-classe
imediatamente superior
![Page 42: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/42.jpg)
Usando super
public Estudante(){
super( “Gustavo", “Av. Getúlio Vargas, 300" );
System.out.println(“Construtor de Pessoa,
a partir de Estudante");
}
Passagem dos parâmetrosnome e endereco
de acordo com a assinatura do construtor da super-classe,
Pessoa
A chamada a super() precisa sero primeiro comando no construtor
A chamada a super() só pode ser feita a partir de um construtor
![Page 43: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/43.jpg)
Usando super
public Student() {
super.nome = “Gustavo”;
super.endereco = “Av. Getúlio Vargas, 300”;
}
Outra forma de usar super é empregar a sintaxe do . para referenciar os membros
da super-classe ( semelhante a this )
![Page 44: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/44.jpg)
Exemplo - herança
![Page 45: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/45.jpg)
Um exemplo Animal !Construiremos a seguir
um exemplo mais longo, envolvendo a criação de objetos, os conceitos de
herança e o de polimorfismo (sobre o
método show( ) ).Demonstraremos também
a utilização de super, super( ) e this .
Animal
Cachorro
Cocker
O exemplo envolve três classes no seguinte
esquema de herança
![Page 46: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/46.jpg)
Chamando o main
![Page 47: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/47.jpg)
O resultado do main
![Page 48: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/48.jpg)
A classe Animal
Animal
tipocor
Animal( tipo, cor )show( )getCor( )
Eu sou um <tipo> <cor>
![Page 49: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/49.jpg)
Código da classe Animal
![Page 50: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/50.jpg)
A subclasse Cachorro
Cachorro
nomeraça
Cachorro( nome, cor)Cachorro( nome, raça, cor )show( )
Eu sou um <tipo> <cor>
<nome> é um <raça>
Naturalmente a subclasse Cachorro herda da classe
mãe, Animal, os campos tipoe cor e pode utilizar os
métodos show( ) e getCor( ) definidos na Animal
![Page 51: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/51.jpg)
Código da
classe
Cachorro
Chamadas ao construtor da classe
mãe
Chamada ao método show( ) da classe mãe
![Page 52: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/52.jpg)
A subclasse Cocker
Cocker
vacina
Cocker( nome, cor, vacina)show( )
O método show( ) exibirá na tela:• as mensagens que herda da
classe mãe • e também uma mensagem
que depende do valor do campo vacina
Eu sou um <tipo> <cor><nome> é um <raça>
Naturalmente a subclasse Cocker herda da classe mãe, Cachorro , os campos nome e raça e herda da classe avó os
campos tipo e cor
Se vacina = true: Cachorro vacinado !
Se vacina = false: Vacinar cachorro !
![Page 53: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/53.jpg)
Código da
classe
Cocker
Chamada ao construtor da classe
Cachorro
Chamada ao método show( ) da classe
Cachorro
![Page 54: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/54.jpg)
Exercício 1
Criar uma classe Pessoa com:• Atributos:
– nome;– endereço,;– email;– telefone
• Construtores:– default;– que receba nome e email;– que receba nome, endereço, email e telefone (lembre-se que podemos
chamar outros construtores da própria classe através do this)
• Utilizar encapsulamento.• Sobrescrever o método toString() que pertence a classe Object para
imprimir os dados no formato:(Nome: xxx /n Email: xxx /n etc...)
• Criar classe com método main e instanciar 5 pessoas e imprimir as instâncias
![Page 55: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/55.jpg)
Exercício 2
Estender a classe Pessoa para duas outras classes• PessoaFisica
– Possui o atributo CPF
• PessoaJuridica– Possui o atributo CNPJ
• Sobrescrever o método toString() para imprimir os dados adicionais alem dos da classe “mãe”
• Utilizar a super nos construtores das classes filhas• Criar uma classe com método main e instanciar 3
pessoas de cada
![Page 56: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/56.jpg)
Exercício 3
Nosso sistema possui uma classe chamada Manobrista
que possui um método chamado estacionar. Este método recebe um objeto e realiza as seguintes operações:
• acelerar;• freiar;• virar(direção);• engatarMarcha(marcha);
Sabendo que osistema pode receber vários tipos de veículos (carros, motos, caminhões, ônibus), crie uma hierarquia de classes para resolver o problema do manobrista.
![Page 57: POO, em Java, com Eclipse e Netbeanswiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-heranca.pdf · POO, em Java, com Eclipse e Netbeans. Tópicos da aula 1. A pilha e a](https://reader035.vdocuments.mx/reader035/viewer/2022062402/5be5b05f09d3f2ea1a8beaff/html5/thumbnails/57.jpg)
Exercício 4
Nosso estacionamento recebe um novo cliente chamado James Bond. Ele trouxe dois carros para estacionar. Como seriam as classes para estes carros? Qual classe estes carros devem estender e quais atributos devemos modificar?
Sabendo que os carros de Bond sempre tem algo diferente de outros carros, qual a solução ideal para resolvermos este problema?