Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Java
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
Galxia
JSE
Java Standard
Edition
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
Constelao
Programao
orientada a objetos
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
Tpicos
Tpicos
Parte III
Herana e
interfaces
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
Tpicos
Desafios
Introduo herana
Herana de membros
Herana e mtodos
Questes de concursos
Hierarquia de classes
Casting de objetos
Hora de praticar
Polimorfismo
Hora de praticar
Questes de concursos
Tpicos
Invocao de mtodos
Herana e atributos
Questes de concursos
Palavra-chave super
Hora de praticar
Evitando herana
Questes de concursos
Classe Object
Hora de praticar
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
Tpicos
Questes de concursos
Interfaces
Hora de praticar
Questes de concursos
Questes de concursos
Operador instanceof
Questes de concursos
Referncias
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
Desafios
10
Desafios
11
Desafios
12
Desafios
13
Introduo herana
Exemplo:
Termos:
Subclasse
Classe derivada
Classe estendida
Classe filha
14
Introduo herana
Termos:
Superclasse
Classe me
Classe pai
Classes descendentes
Classe base
Classes ancestrais
15
Introduo herana
Herana simples
16
Introduo herana
Atributos
Mtodos
Classes aninhadas
Construtores da superclasse:
17
Herana de membros
public
protected
default
public
protected
18
Herana de membros
19
Herana de membros
Pacote
Pacote 11
public
public class
class A
A {{
private
private String
String atributo1
atributo1;;
public
public String
String atributo2
atributo2;;
protected
protected String
String atributo3
atributo3;;
String
String atributo4
atributo4;;
}}
Pacote
Pacote 22
public
public class
class C
C extends
extends A
A {{
public
public String
String atributo2
atributo2;;
protected
protected String
String atributo3
atributo3;;
}}
class
class BB extends
extends A
A {{
public
public String
String atributo2
atributo2;;
protected
protected String
String atributo3
atributo3;;
String
String atributo4
atributo4;;
}}
20
Herana e mtodos
Mtodos sobrescritos
Substituindo eles
Anotao @Override
21
Herana e mtodos
Mtodos sobrescritos
Exemplos:
Superclasse:
return x * 10;
}
Subclasse:
@Override
public int teste(int x) {
return x * 10 + 15;
}
22
Herana e mtodos
Mtodos ocultados
Da superclasse
Da subclasse
23
Herana e mtodos
Exemplos:
Superclasse:
return "SUPERclasse";
}
public String teste() {
24
Herana e mtodos
Exemplos:
Subclasse:
return "SUBclasse";
}
// Mtodo que sobrescreveu o da superclasse.
@Override
public String teste() {
25
Herana e mtodos
Exemplos:
Classe executvel:
System.out.println(Superclasse.nomeClasse());
System.out.println(Subclasse.nomeClasse());
System.out.println(variavelSuperClasse.nomeClasse());
System.out.println(variavelSuperClasse.teste());
26
Herana e mtodos
Exemplos:
SUPERclasse
SUBclasse
SUPERclasse
27
Herana e mtodos
Mtodos sobrecarregados
Exemplos:
Subclasse:
return x * y * 10 + 15;
}
28
Herana e mtodos
Modificadores
Modificador static
29
Herana e mtodos
private
private
default
default
protected
protected
public
public
30
Herana e mtodos
Mtodo de instncia da
superclasse
Mtodo esttico da
superclasse
Mtodo de instncia da
subclasse
Sobrescreve
Mtodo de esttico da
subclasse
Oculta
31
Questes de concursos
[CESPE 2011 CORREIOS Cargo 3] A respeito da orientao a
objetos, julgue o item subsequente.
32
Questes de concursos
[CESPE 2011 CORREIOS Cargo 3] A respeito da orientao a
objetos, julgue o item subsequente.
Gabarito: ERRADO.
33
Hierarquia de classes
Object
Object
ContaCorrente
ContaCorrente
ContaPoupanca
ContaPoupanca
ContaMovimento
ContaMovimento
34
Hierarquia de classes
ContaPoupanca conta = new ContaPoupanca();
ContaPoupanca
ContaPoupanca
private
private double
double taxaJuros;
taxaJuros;
private
private double
double correcaoMonentaria;
correcaoMonentaria;
public
public static
static String
String nome();
nome();
public
public void
void extrato();
extrato();
conta
conta
ContaCorrente
ContaCorrente
private
private long
long numeroConta;
numeroConta;
private
private double
double saldo;
saldo;
public
public static
static String
String nome();
nome();
public
public void
void extrato();
extrato();
35
Casting de objetos
Casting implcito
Casting explcito
36
Casting de objetos
H dois tipos:
Casting implcito
Exemplo:
Casting explcito
Exemplo:
37
Casting de objetos
implcito
Casting implcito
Casting
explcito
Casting explcito
Casting
Object
Object
ContaCorrente
ContaCorrente
ContaPoupanca
ContaPoupanca
ContaMovimento
ContaMovimento
38
Casting de objetos
ContaCorrente conta1 = new ContaPoupanca();
ContaPoupanca
ContaPoupanca
private
private double
double taxaJuros;
taxaJuros;
private
private double
double correcaoMonentaria;
correcaoMonentaria;
public
public static
static String
String nome();
nome();
public
public void
void extrato();
extrato();
conta1
conta1
ContaCorrente
ContaCorrente
private
private long
long numeroConta;
numeroConta;
private
private double
double saldo;
saldo;
public
public static
static String
String nome();
nome();
public
public void
void extrato();
extrato();
39
Casting de objetos
ContaPoupanca conta2 = (ContaPoupanca) conta1;
ContaPoupanca
ContaPoupanca
conta1
conta1
private
private double
double taxaJuros;
taxaJuros;
private
private double
double correcaoMonentaria;
correcaoMonentaria;
public
public static
static String
String nome();
nome();
public
public void
void extrato();
extrato();
ContaCorrente
ContaCorrente
conta2
conta2
private
private long
long numeroConta;
numeroConta;
private
private double
double saldo;
saldo;
public
public static
static String
String nome();
nome();
public
public void
void extrato();
extrato();
40
41
Hora de praticar
constelacao02.parte03
Exemplo01_ContaCorrenteConcreta
constelacao02.parte03.classes.contacorrenteconcreta
ContaCorrente
ContaPoupanca
ContaMovimento
Banco
42
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 19]
43
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 19]
44
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 19]
C1 a = new C1();
a.f(); // 1.
C2 b = new C2();
b.f(); // 2.
a = b;
a.f(); // 2.
b.g(); // 2.
}
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
45
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 19] Considerando a execuo
do trecho de cdigo em Java acima, o programa
[C] imprime 1 2 1 1.
[D] imprime 1 2 1 2.
[E] imprime 1 2 2 2.
46
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 19] Considerando a execuo
do trecho de cdigo em Java acima, o programa
[C] imprime 1 2 1 1.
[D] imprime 1 2 1 2.
[E] imprime 1 2 2 2.
47
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 61]
48
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 61]
package pk1;
public class C1 {
void f() {
System.out.println("C1");
49
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 61]
System.out.println("C2");
void f() {
C1 c = new C2();
}
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
50
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 61] Analisando o cdigo
acima, verifica-se que o programa
51
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 61] Analisando o cdigo
acima, verifica-se que o programa
52
Polimorfismo
53
Polimorfismo
54
55
Hora de praticar
constelacao02.parte03
Exemplo02_TestandoPolimorfismo
constelacao02.parte03.classes
Pessoa
Homem
Mulher
56
Questes de concursos
[FCC 2012 MPE/AP Analista Ministerial Tecnologia da
Informao Questo 35] Analise o cdigo das classes a seguir
presentes em um mesmo pacote de um projeto Java:
57
Questes de concursos
[FCC 2012 MPE/AP Analista Ministerial Tecnologia da
Informao Questo 35] Com base nos cdigos apresentados e
nos conceitos da orientao a objetos correto afirmar:
58
Questes de concursos
[FCC 2012 MPE/AP Analista Ministerial Tecnologia da
Informao Questo 35] Com base nos cdigos apresentados e
nos conceitos da orientao a objetos correto afirmar:
59
Questes de concursos
[FCC 2012 MPE/AP Analista Ministerial Tecnologia da
Informao Questo 35] Com base nos cdigos apresentados e
nos conceitos da orientao a objetos correto afirmar:
60
Questes de concursos
[FCC 2012 MPE/AP Analista Ministerial Tecnologia da
Informao Questo 35] Com base nos cdigos apresentados e
nos conceitos da orientao a objetos correto afirmar:
61
Questes de concursos
[CESPE 2012 ANAC Cargo 4] Acerca da execuo dos trechos de
cdigos referentes linguagem de programao Java, julgue o
item seguinte.
return i;
62
Questes de concursos
[CESPE 2012 ANAC Cargo 4] Acerca da execuo dos trechos de
cdigos referentes linguagem de programao Java, julgue o
item seguinte.
{ a.i = a.i*3; }
System.out.println( a.getInteiro() );
}
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
63
Questes de concursos
[CESPE 2012 ANAC Cargo 4] Acerca da execuo dos trechos de
cdigos referentes linguagem de programao Java, julgue o
item seguinte.
Gabarito: CERTO.
64
Questes de concursos
[CESPE 2010 MPU Cargo 25] Com relao linguagem Java,
usada para projetar e manipular itens de dados complexos
(objetos), julgue o item.
65
Questes de concursos
[CESPE 2010 MPU Cargo 25] Com relao linguagem Java,
usada para projetar e manipular itens de dados complexos
(objetos), julgue o item.
66
Questes de concursos
[CESPE 2010 MPU Cargo 25] Com relao linguagem Java,
usada para projetar e manipular itens de dados complexos
(objetos), julgue o item.
Gabarito: ERRADO.
67
Invocao de mtodos
Formas:
Ligao prematura
Early binding
Ligao tardia
Late binding
68
Invocao de mtodos
Formas:
Dynamic binding
Run-time binding
private
final
static
Construtores
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
69
Herana e atributos
Atributos escondidos
Exemplo:
super.nome
70
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 58]
71
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 58] Linguagens orientadas a
objeto possuem modificadores de acesso que so palavraschaves que costumam limitar ou liberar o acesso a variveis e/ou
mtodos, de forma a implementar o conceito de
encapsulamento. Existem vrios modificadores de acesso em
Java que controlam este acesso, tais como os modificadores
public, private e protected.
72
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 58] Com base nestes
conceitos, qual ser o resultado obtido se o fragmento de cdigo
acima for includo em uma classe e compilado em linguagem
Java?
73
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 58] Com base nestes
conceitos, qual ser o resultado obtido se o fragmento de cdigo
acima for includo em uma classe e compilado em linguagem
Java?
74
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 58] Com base nestes
conceitos, qual ser o resultado obtido se o fragmento de cdigo
acima for includo em uma classe e compilado em linguagem
Java?
75
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 58] Com base nestes
conceitos, qual ser o resultado obtido se o fragmento de cdigo
acima for includo em uma classe e compilado em linguagem
Java?
76
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 58] Com base nestes
conceitos, qual ser o resultado obtido se o fragmento de cdigo
acima for includo em uma classe e compilado em linguagem
Java?
77
Palavra-chave super
Seus membros
Seus construtores
Sintaxe:
super();
super(lista de parmetros);
Importante:
78
79
Hora de praticar
constelacao02.parte03
Exemplo03_PalavraChaveSuper
constelacao02.parte03.classes
Superclasse
Subclasse
80
Evitando herana
System.out.println(Texto);
81
Questes de concursos
[CESPE 2011 MPE/PI Cargo 6] Julgue o prximo item, a respeito
de linguagens e tecnologias de programao.
82
Questes de concursos
[CESPE 2011 MPE/PI Cargo 6] Julgue o prximo item, a respeito
de linguagens e tecnologias de programao.
Gabarito: ERRADO.
83
Classe Object
Diretamente
No necessrio escrever:
Indiretamente
84
Classe Object
Retorno
Mtodo
Descrio
Object
clone()
boolean
equals()
void
finalize()
Class<?>
getClass()
int
hashCode()
void
notify()
void
notifyAll()
85
Classe Object
Retorno
Mtodo
Descrio
String
toString()
wait()
wait(long timeout)
void
void
void
86
Classe abstrata
Pode ter:
Atributos estticos
Mtodos estticos
87
Mtodo abstrato
um mtodo declarado:
Sem chaves
88
Exemplos:
// Atributos necessrios.
// Construtores necessrios.
89
Exemplos (continuao):
// Atributos necessrios.
// Construtores necessrios.
// Mtodo implementado.
@Override
90
implcito
Casting implcito
Casting
explcito
Casting explcito
Casting
Object
Object
ContaCorrente
ContaCorrente
ContaPoupanca
ContaPoupanca
ContaMovimento
ContaMovimento
91
92
Hora de praticar
constelacao02.parte03
Exemplo04_ContaCorrenteAbstrata
constelacao02.parte03.classes.contacorrenteabstrata
ContaCorrente
ContaPoupanca
ContaMovimento
Banco
93
Questes de concursos
[CESPE 2011 CORREIOS Cargo 3] A respeito da orientao a
objetos, julgue o item subsequente.
94
Questes de concursos
[CESPE 2011 CORREIOS Cargo 3] A respeito da orientao a
objetos, julgue o item subsequente.
Gabarito: ERRADO.
95
Questes de concursos
[CESPE 2010 SECGEP/PE Cargo 3 Questo 37] Com relao
orientao a objetos, assinale a opo correta.
96
Questes de concursos
[CESPE 2010 SECGEP/PE Cargo 3 Questo 37] Com relao
orientao a objetos, assinale a opo correta.
Gabarito: ERRADO.
Gabarito: CERTO.
97
Questes de concursos
[CESPE 2010 MPU Cargo 25] Com relao linguagem Java,
usada para projetar e manipular itens de dados complexos
(objetos), julgue o item.
98
Questes de concursos
[CESPE 2010 MPU Cargo 25] Com relao linguagem Java,
usada para projetar e manipular itens de dados complexos
(objetos), julgue o item.
99
Questes de concursos
[CESPE 2010 MPU Cargo 25] Com relao linguagem Java,
usada para projetar e manipular itens de dados complexos
(objetos), julgue o item.
100
Questes de concursos
[CESPE 2010 MPU Cargo 25] Com relao linguagem Java,
usada para projetar e manipular itens de dados complexos
(objetos), julgue o item.
Gabarito: ERRADO.
101
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 59]
102
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 59]
103
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 59] Analisando o cdigo ao
lado, verifica-se que o programa
104
Questes de concursos
[CESGRANRIO 2010 Petrobrs Analista de Sistemas Jnior
Engenharia de Software Questo 59] Analisando o cdigo ao
lado, verifica-se que o programa
105
Interfaces
No uma classe
Atributos estticos
Assinaturas de mtodos
Tipos aninhados
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
106
Interfaces
No possuem:
Atributos de instncia
Mtodos implementados
107
Interfaces
108
Interfaces
Object
Object
Persistivel
Persistivel
implcito
Casting implcito
Casting
explcito
Casting explcito
Casting
ExibivelXML
ExibivelXML
ContaCorrente
ContaCorrente
ContaPoupanca
ContaPoupanca
ContaMovimento
ContaMovimento
109
Interfaces
public
default
Palavra-chave interface
Nome da interface
Se houver
110
Interfaces
Corpo da interface
111
Interfaces
No h chaves {}
112
Interfaces
Exemplos:
Interface
String insere();
@Override
113
114
Hora de praticar
constelacao02.parte03
Exemplo05_ContaCorrenteInterfaces
constelacao02.parte03.classes.contacorrenteinterfaces
ContaCorrente
ContaPoupanca
ContaMovimento
Banco
constelacao02.parte03.classes.interfaces
ExibivelXML
Persistivel
115
Questes de concursos
[CESPE 2010 SECGEP/PE Cargo 3 Questo 37] Com relao
orientao a objetos, assinale a opo correta.
116
Questes de concursos
[CESPE 2010 SECGEP/PE Cargo 3 Questo 37] Com relao
orientao a objetos, assinale a opo correta.
Gabarito: ERRADO.
117
Questes de concursos
[CESPE 2010 DETRAN/ES Cargo 3] A respeito da orientao a
objetos e das respectivas linguagens de programao, julgue o
item subsequente.
118
Questes de concursos
[CESPE 2010 DETRAN/ES Cargo 3] A respeito da orientao a
objetos e das respectivas linguagens de programao, julgue o
item subsequente.
Gabarito: CERTO.
119
Questes de concursos
[CESGRANRIO 2012 CMB Assistente Tcnico Administrativo
Programador de Computador] Uma diferena entre classe e
interface que a classe
120
Questes de concursos
[CESGRANRIO 2012 CMB Assistente Tcnico Administrativo
Programador de Computador] Uma diferena entre classe e
interface que a classe
121
Questes de concursos
[CESGRANRIO 2012 Petrobrs Tcnico de Explorao de
Petrleo Jnior Informtica] Ao escrever o cdigo da Classe
PortaDeCofre em Java para que ela atenda a interface Porta,
como um programador deve comear a declarao da classe?
122
Questes de concursos
[CESGRANRIO 2012 Petrobrs Tcnico de Explorao de
Petrleo Jnior Informtica] Ao escrever o cdigo da Classe
PortaDeCofre em Java para que ela atenda a interface Porta,
como um programador deve comear a declarao da classe?
123
Classes abstratas
No
No
Herana mltipla
Implementa interfaces
No
Variveis
Mtodos
124
Questes de concursos
[CESPE 2010 SECGEP/PE Cargo 3 Questo 37] Com relao
orientao a objetos, assinale a opo correta.
125
Questes de concursos
[CESPE 2010 SECGEP/PE Cargo 3 Questo 37] Com relao
orientao a objetos, assinale a opo correta.
Gabarito: ERRADO.
126
Operador instanceof
Uma classe
Uma subclasse
Sintaxe:
127
Operador instanceof
veiculo
veiculo
Veiculo
Veiculo
Carro
Carro
Acelerar
Acelerar
carro
carro
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
128
Questes de concursos
[ESAF 2008 CGU Analista de Finanas e Controle
Desenvolvimento de Sistemas Questo 23] Com relao
linguagem de programao Java, correto afirmar que
129
Questes de concursos
[ESAF 2008 CGU Analista de Finanas e Controle
Desenvolvimento de Sistemas Questo 23] Com relao
linguagem de programao Java, correto afirmar que
Gabarito: ERRADO.
130
Questes de concursos
[CESPE 2012 BASA Cargo 17] Julgue o item seguinte, acerca da
linguagem de programao Java.
131
Questes de concursos
[CESPE 2012 BASA Cargo 17] Julgue o item seguinte, acerca da
linguagem de programao Java.
Gabarito: ERRADO.
instanceof
Uma classe
Uma subclasse
132
Gabarito: ERRADO.
Gabarito: CERTO.
Gabarito: ERRADO.
Construtores da superclasse:
133
public
protected
default
public
protected
Gabarito: ERRADO.
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com
134
Substituindo eles
135
Gabarito: ERRADO.
O modificador de acesso de um mtodo sobrescrito ou oculto
deve ser igual ou mais liberal ao mtodo da superclasse
Gabarito: ERRADO.
136
137
Nos casos:
private
final
static
Construtores
138
Gabarito: ERRADO.
Gabarito: CERTO.
139
Gabarito: CERTO.
140
public
static
final
public
141
Referncias
142
Referncias
143