Prévia do material em texto
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Orientação a Objetos com Java
Professor Marcelo Pacote – @professorpacote
W W W. D OMI NAND OTI .COM.B R
Acesse nosso site em
WWW.DOMINANDOTI.COM.BR
Curta o Dominando TI no
e receba nossas dicas sobre concursos!
Cursos Turmas em Brasília, na sua cidade, e cursos online
Livros Edições publicadas, lançamentos e promoções
Fórum Interação direta entre estudantes e com os professores
Simulados Questões inéditas, ranking de notas e correções em vídeo
Blog Dicas e macetes de estudo, indicações de bibliografia, etc.
Materiais Versões atualizadas de notas de aula e listas de exercícios
W W W. D OMI NAND OTI .COM.B R
Orientação a Objetos
Propósitos da Programação Orientada a Objetos
Facilidade de manutenção;
Facilidade de evolução;
Reutilização.
3 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Herança – definição e terminologia
Capacidade de incorporar os dados e métodos de uma classe
previamente definida.
Possibilidade de criar hierarquia de classes.
Herança múltipla (não disponível em Java)
Terminologia:
estender = criar uma nova classe que herda todo o conteúdo da
classe existente.
superclasse = uma classe progenitora ou “base”.
subclasse = uma classe filha que herda (ou estende) de uma
superclasse.
4 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Encapsulamento
O encapsulamento esconde detalhes de implementação do
objeto (métodos) e o que sobra visível é a sua interface.
O encapsulamento permite a visualização de uma entidade de
software como uma caixa preta. Sabemos o que a caixa preta faz
(interface externa) enviamos mensagens para ela, não nos
preocupando com o que acontece dentro dela.
Mecanismo utilizado visando obter segurança, modularidade e
autonomia para objetos;
5 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Modificadores de acesso
public +
private -
protected #
<default> ~
Estes atributos e métodos são sempre acessíveis em todos
os métodos de todas as classes. Este é o nível menos rígido
de encapsulamento, que equivale a não encapsular.
Estes atributos e métodos são acessíveis somente nos
métodos (todos) da própria classe. Este é o nível mais rígido
de encapsulamento.
Estes atributos e métodos são acessíveis no pacote, nos
métodos da própria classe e suas subclasses.
Visível no pacote e na classe.
6 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Encapsulamento - visibilidade
7 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Atributos - controle de acesso
Modificador classe subclasse pacote Mundo
private
default
protected *
public
8 Professor Marcelo Pacote - @professorpacote
- UML X Java
- Java é mais liberal. Permite acesso a membros protegidos
por métodos de classes do mesmo pacote.
W W W. D OMI NAND OTI .COM.B R
Exercício [01] (MPU/2010/CESPE)* adaptada
A respeito da hierarquia de classes, um conceito de relevância
na programação orientada a objetos, julgue os itens que se
seguem.
( ) Se a classe C2 é uma subclasse da classe C1, todas as
características que são herdadas por C2 foram definidas na
classe C1 ou em alguma das superclasses de C1.
( ) Um objeto é, necessariamente, instância de apenas uma
classe, mesmo quando existe herança múltipla em uma
hierarquia de classes.
9 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [02] (Serpro/2013/Cespe/Desv/105)
( ) A herança — um princípio de orientação a objetos que
permite que classes compartilhem atributos e métodos — é
utilizada para reaproveitar código ou comportamento
generalizado ou especializar operações ou atributos.
10 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [3] (SADPE/2009/FGV) (1/2) - adaptada
No que diz respeito à metodologia orientada a objetos, dois
conceitos são apresentados a seguir:
I. separa os aspectos externos e acessíveis de um objeto dos
detalhes internos de implementação e, paralelamente, evita que
partes de um programa se tornem tão dependentes que uma
pequena alteração tenha grandes efeitos em cascata.
II. possibilita a definição de uma nova classe (subclasse), a
partir de uma classe já existente (superclasse).
11 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [3] (SADPE/2009/FGV) (2/2)
Esses conceitos são conhecidos, respectivamente, por:
a) polimorfismo e acoplamento.
b) herança e polimorfismo.
c) encapsulamento e herança.
d) independência e encapsulamento.
e) acoplamento e independência.
12 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
O mecanismo que possibilita restringir o acesso ao
comportamento interno de um objeto é denominado
a) encapsulamento.
b) herança.
c) polimorfismo.
d) atributo.
e) método.
Exercício [04] (ANA/ESAF/2009)
13 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [5] (PETR/2011/CESGRANRIO)
O esboço de diagrama de classes ilustrado na figura, usando a
notação proposta pela linguagem UML, apresenta duas classes C1
e C2 e dois pacotes p1 e p2. Quais atributos de instância podem ser
manipulados por métodos definidos na classe C2?
a) w, y e z b) x, y e z c) w e y d) w e) y
14 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [6] (PGDF/2011/IADES) (1/2)
Assinale a alternativa correta a respeito do seguinte diagrama
de classes:
15 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [6] (PGDF/2011/IADES) (2/2)
a) Trata-se de um diagrama de colaboração e representa a
interação entre as classes Professor e Pessoa.
b) A classe Professor herda os atributos nome e idade da classe
Pessoa.
c) A classe Pessoa herda os atributos turma e salário da classe
professor.
d) A classe Professor herda os atributos getNome() e setNome()
de Pessoa.
e) A classe Pessoa herda os atributos setSalario() e getTurma()
da classe Professor.
16 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [7] (TRT-14/2011/FCC)
A classe Veiculo contém alguns atributos de interesse da classe
Aeronave. Todavia, as aeronaves também demonstram
interesse em captar atributos e também operações da classe
Elemento Turbinado. O enunciado enfatiza o conceito OO de
a) polimorfismo.
b) herança múltipla.
c) dependência funcional.
d) realização.
e) encapsulamento.
17 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [8] (DETRAN-DF/2009/CESPE)
( ) A implementação de herança múltipla em Java não é
possível.
18 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Polimorfismo
Ocorre quando uma classe possui um método com o mesmo
nome e assinatura (número, tipo e ordem de parâmetros) de um
método na sua superclasse;
Toda vez que isto ocorrer, a máquina virtual irá executar o
método da classe mais especializada (a subclasse) e não o método
da superclasse (sobreposição). Note que esta decisão ocorre em
tempo de execução;
Polimorfismo ocorre tambémquando existem dois métodos com
mesmo nome, na mesma classe com e assinaturas diferentes. O
método será escolhido de acordo com o número de parâmetros,
tipo ou valor de retorno esperado. Note que esta decisão ocorre em
tempo de compilação.
19 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
- Substituir a implementação de um método
herdado por uma implementação própria da
subclasse
public class Super {
...
public void metodo1(){
a = b * c;
}
}
public class Sub extends Super {
...
public void metodo1(){
x = y + z;
}
}
Polimorfismo – Sobreposição [1/5]
20 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Polimorfismo – Sobrecarga de construtores [2/5]
class Fruta {
int gramas;
int caloriasPorGrama;
Fruta() {
gramas=55;
caloriasPorGrama=0;
}
Fruta(int g, int c) {
gramas =g;
caloriasPorGrama =c;
}
void descascar () {
System.out.println(“Aqui eu descasco frutas”);
}
}
sobrecarga
21 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Polimorfismo – Sobrecarga de construtores [3/5]
class Citros extends Fruta {
private int acidoCitrico;
public Citros() {
super();
this.acidoCitrico=1000;
}
public Citros(int g, int c, int a) {
super(g,c);
this.setAcidoCitrico(a);
}
sobrecarga
22 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
int getAcidoCitrico() {
return acidoCitrico;
}
void setAcidoCitrico(int acido) {
this.acidoCitrico=acido;
}
void descascar () {
System.out.println(
“Aqui eu descasco so citricos”);
}
}
Polimorfismo – Sobreposição [4/5]
sobreposição
23 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Polimorfismo – conclusão do exemplo [5/5]
public class Feira
{
public static void main(String args[])
{
Fruta melancia = new Fruta(4000, 5);
Fruta laranja = new Citros();
melancia.descascar();
laranja.descascar();
}
}
24 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [9] (MPU/2010/CESPE) (1/2)
( ) No código em Java mostrado a seguir, as classes Conta e
Poupanca implementam o polimorfismo dinâmico.
class Conta {
float saldo;
public float getSaldo(int i) {
float saldo = 0f;
if (i == 1 ) saldo = this.saldo * 1.03f;
return saldo;
}
public void setSaldo (float saldo) {
this.saldo = saldo + 20f;
}
}
25 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [9] (MPU/2010/CESPE) (2/2)
class Poupanca extends Conta
{
public float getSaldo()
{
return saldo;
}
}
26 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [10] (TCU/2005/CESPE)
Acerca das estruturas de dados, linguagens e ambientes de
programação e das técnicas da orientação a objetos para a
construção de aplicações e bancos de dados, julgue os itens
seguintes.
( ) O polimorfismo, uma das características da orientação a
objetos, permite eliminar dos programas estruturas de controle
condicionais que, em programas estruturados, provocam o
surgimento de erros e a dificuldade de extensão e reutilização.
( ) Depois de definida, uma hierarquia de classes não deve ser
reestruturada.
27 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [11] (PETR/2011/CESGRANRIO)
Em um projeto de software orientado a objetos, surgiu a necessidade de modelar
um certo comportamento alternativo com base no tipo específico de uma
determinada entidade. Procedimento similar foi desenvolvido no passado, usando
lógica condicional através dos comandos se – então – senão em uma linguagem
de programação estruturada.
Qual recurso o programador deverá utilizar para solucionar a questão nesse novo
projeto?
a) Agregação
b) Classes Abstratas
c) Encapsulamento
d) Polimorfismo
e) Composição
28 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [12] (MEC/2009/FGV/Adm. Dados)
Na Análise Orientada a Objetos, o princípio pelo qual duas ou mais
classes derivadas de uma mesma superclasse podem invocar métodos
que têm a mesma identificação (assinatura) mas comportamentos
distintos, especializados para cada classe derivada, usando para tanto
uma referência a um objeto do tipo da superclasse é denominado:
a) encapsulamento.
b) independência.
c) modularidade.
d) polimorfismo.
e) herança.
29 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [13] (TRANSPETRO/2011/CESGRANRIO) (1/2)
Considere as duas
classes em linguagem
Java apresentadas a
seguir, ambas definidas
em um mesmo pacote.
30
30 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [13] (TRANSPETRO/2011/CESGRANRIO) (2/2)
O que é impresso como resultado da execução do programa
composto pelas classes acima?
a)
b)
c)
d)
e)
31 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [14] (DETRAN-ES/2010/CESPE)
A respeito da orientação a objetos e das respectivas linguagens
de programação, julgue o item:
( ) De acordo com a programação orientada a objetos, por meio
da qual o objeto é dividido em métodos e propriedades, ocorre
polimorfismo em situações em que apenas os aspectos
externos do objeto são visíveis, o que possibilita que as
alterações na implementação do programa mantenham a
característica física do objeto, sem alterar sua forma e
interface.
32 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [15] (MPU/2010/CESPE)
( ) Considere que uma classe C1 implemente determinado método
M1 e tenha duas subclasses: C2 e C3. Nessa situação, o
comportamento de um objeto de C2 ou C3 que receba uma
mensagem invocando o método M1 será obrigatoriamente idêntico
ao comportamento de um objeto de C1 que receba a mesma
mensagem.
33 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Classes Abstratas
Quando a palavra-chave “abstract” aparece no início de uma
declaração de classe, significa que esta classe nunca gerará
instâncias.
Um método abstrato não tem corpo; o seu propósito é forçar
uma subclasse a sobrepô-lo e fornecer uma implementação
concreta do método.
34 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Classes Abstratas: Exemplo
public abstract class VeiculoAquatico {
abstract void definirRumo (int n);
abstract void definirVelocidade (int n);
}
class Canoa extends VeiculoAquatico {
void definirRumo (int n){
....
}
void definirVelocidade (int n) {
...
}
}
35 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Polimorfismo
Os membros definidos na superclasse podem ser acessados
na subclasse através do qualificador super.
Exceto se forem privados!
Métodos declarados como final não podem ser
redefinidos.
Métodos abstratos devem ser redefinidos ou declarados como
abstratos.
36 Professor Marcelo Pacote - @professorpacoteW W W. D OMI NAND OTI .COM.B R
Interface
interface pode ser considerada como a forma com que um
objeto se apresenta para outros no que diz respeito aos seus
métodos (sua funcionalidade);
é a representação externa de um objeto.
37 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Interfaces em Java
Criadas com a palavra reservada interface.
implementadas pelas classes com a palavra reservada
implements.
Seus métodos sempre são públicos
É obrigatória a declaração ‘public’?
Seus atributos sempre static final.
38 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Interface - exemplo
public interface ControleRemoto {
public void ligaTV();
public void desligaTV();
public void mudaCanalTV(int canalNovo);
}
public class TV implements ControleRemoto {
public void ligaTV() {...}
public void desligaTV() {...}
public void mudaCanalTV(int canalNovo) {...}
}
Professor Marcelo Pacote - @professorpacote 39
W W W. D OMI NAND OTI .COM.B R
Modificadores de Classes em Java
A classe pode ser usada por qualquer outra classe de
qualquer pacote.
A classe não pode ser instanciada.
A classe não pode ter subclasse (folha da árvore de classes).
A classe é uma subclasse da superclasse especificada.
A classe implementa a(s) interface(s) especificadas.
public
abstract
final
extends
Implements
Professor Marcelo Pacote - @professorpacote 40
W W W. D OMI NAND OTI .COM.B R
Em Java, para que um método de uma superclasse não seja
sobrescrito em suas subclasses, aplica-se o modificador
a) static.
b) public.
c) final.
d) protected.
e) abstract.
Exercício [16] (ANA/ESAF/2009)
Professor Marcelo Pacote - @professorpacote 41
W W W. D OMI NAND OTI .COM.B R
Exercício [17] (MEC/2008/FGV/Arquiteto) (1/2)
Acerca de análise e programação Orientada a Objeto, não é
correto afirmar que:
a) em linguagem de programação Java, “extends” identifica
que uma classe deriva de outra.
b) o encapsulamento “empacota” os dados e operações de
determinado objeto numa entidade única.
c) polimorfismo refere-se ao poder que os objetos têm de
realizar a mesma tarefa a partir de informações diferentes.
Professor Marcelo Pacote - @professorpacote 42
W W W. D OMI NAND OTI .COM.B R
Exercício [17] (MEC/2008/FGV/Arquiteto) (2/2)
d) na UML, o Digrama de Classes modela aspectos dinâmicos
do sistema, focando nas entidades e seus relacionamentos.
e) com o mecanismo de herança, os objetos podem receber
características de outros objetos e transferi-las para seus
descendentes.
Professor Marcelo Pacote - @professorpacote 43
W W W. D OMI NAND OTI .COM.B R
Exercício [18] (MEC/2008/FGV/Desenv.) (1/2)
A respeito da linguagem Java, analise as afirmativas a seguir:
I. O modificador final, utilizado na assinatura de uma classe, indica
que ela é uma classe que não pode ser estendida.
II. Classes Abstratas com métodos abstratos forçam suas
subclasses não abstratas a sobrescreverem e implementarem os
métodos declarados como abstratos.
III. Java permite herança múltipla, ou seja, uma classe pode herdar
variáveis e métodos de mais de uma superclasse ao mesmo tempo.
Professor Marcelo Pacote - @professorpacote 44
W W W. D OMI NAND OTI .COM.B R
Exercício [18] (MEC/2008/FGV/Desenv.) (2/2)
Assinale:
a) se somente a afirmativa I estiver correta.
b) se somente as afirmativas I e II estiverem corretas.
c) se somente as afirmativas I e III estiverem corretas.
d) se somente as afirmativas II e III estiverem corretas.
e) se todas as afirmativas estiverem corretas.
Professor Marcelo Pacote - @professorpacote 45
W W W. D OMI NAND OTI .COM.B R
Exercício [19] (CGU/2008/ESAF) (1/2)
A programação orientada a objetos é baseada em diversos
conceitos, tais como encapsulamento, herança, polimorfismo e
abstração. Com relação a esses conceitos, é correto afirmar
que:
a) o conceito de encapsulamento é alcançado por meio da
definição da visibilidade pública aos atributos e métodos.
b) herança é um mecanismo que permite que uma classe herde
todo o comportamento e os atributos de outra classe. Em Java,
pode-se implementar tanto a herança única quanto a herança
múltipla.
Professor Marcelo Pacote - @professorpacote 46
W W W. D OMI NAND OTI .COM.B R
Exercício [19] (CGU/2008/ESAF) (2/2)
c) interface pode ser considerada como a forma com que um objeto se
apresenta para outros, no que diz respeito aos seus atributos e métodos.
Em Java, uma mesma classe não pode implementar mais de uma
interface.
d) polimorfismo é o uso de um mesmo nome para identificar diferentes
implementações dos métodos. Seu uso é comum na definição de
construtores, em que os mesmos podem ser implementados em
diferentes versões para as diferentes formas de se instanciar a classe.
e) para uma classe ser considerada abstrata, todos os seus métodos
devem ser abstratos. Em Java, para se definir uma classe abstrata deve-
se utilizar a palavra chave “abstract” no início de sua declaração.
Professor Marcelo Pacote - @professorpacote 47
W W W. D OMI NAND OTI .COM.B R
Exercício [20] (MEC/2009/FGV/Arquiteto) (1/2)
Analise o código das três classes (Classe1, Classe2 e Classe3)
Java a seguir:
class Classe1 {
protected Classe2 cl2;
}
class Classe3 extends Classe1 { }
class Classe2 { }
Professor Marcelo Pacote - @professorpacote 48
W W W. D OMI NAND OTI .COM.B R
Exercício [20] (MEC/2009/FGV/Arquiteto) (2/2)
Com relação ao código é correto afirmar que:
a) Classe3 é uma Classe2 e tem uma Classe1.
b) Classe1 é uma Classe3 e tem uma Classe2.
c) Classe2 tem uma Classe3 e Classe3 é uma Classe1.
d) Classe3 tem uma Classe2 e Classe3 é uma Classe1.
e) Classe2 tem uma Classe1 e Classe1 é uma Classe3.
Professor Marcelo Pacote - @professorpacote 49
W W W. D OMI NAND OTI .COM.B R
Exercício [21] (MPE-PE/2012/FCC) (1/2)
Sobre a programação orientada a objetos com Java, é correto
afirmar:
a) Uma classe pode ter mais de um método com o mesmo nome,
desde que receba parâmetros diferentes.
b) É obrigatório escrever em toda classe um construtor vazio que
não recebe parâmetros. Além desse construtor, pode-se criar
outros construtores vazios.
c) Em uma hierarquia de herança, a superclasse herda todos os
métodos públicos, privados e protegidos das subclasses dessa
classe.
Professor Marcelo Pacote - @professorpacote 50
W W W. D OMI NAND OTI .COM.B R
Exercício [21] (MPE-PE/2012/FCC) (2/2)
d) Uma interface possui métodos com conteúdo implementado
que não precisam ser reescritos nas classes que a
implementam.
e) No interior do método main de uma classe, mesmo os
métodos públicos e estáticos de outra classe só podem ser
acessados por meio de um objeto explicitamente instanciado
Professor Marcelo Pacote - @professorpacote 51
W W W. D OMI NAND OTI .COM.B R
Gabarito
[01] ec
[02] certo
[03] c
[04] a
[05] e
[06] b
[07] b
[08] certo
[09] e
[10] certo, errado
[11] d
[12] d
[13] a
[14] errado
[15] errado
[16] c
[17] d
[18] b
[19] d
[20] d
[21] a
Professor Marcelo Pacote - @professorpacote 52
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Anexo I
Exercícios Complementares
ESAF
Professor Marcelo Pacote – @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [01] (MPU/2004/ESAF)
Na linguagem deprogramação Java o mesmo nome de método
pode ser usado para identificar diferentes métodos em uma
mesma classe ou diferentes métodos em classes diferentes.
Essa característica é denominada
a) métodos abstratos.
b) herança.
c) polimorfismo.
d) construtor.
e) exceções.
Professor Marcelo Pacote - @professorpacote 54
W W W. D OMI NAND OTI .COM.B R
Exercício [02] (SUSEP/2010/ESAF)
Em relação à programação orientada a objetos, é correto
afirmar que
a) o objeto é definido por atributos.
b) objetos são instâncias de um atributo.
c) apenas atributos numéricos são válidos.
d) atributos podem ser agrupados em pointvalues.
e) atributos adequados dispensam referências a objetos.
Professor Marcelo Pacote - @professorpacote 55
W W W. D OMI NAND OTI .COM.B R
Exercício [03] (CGU/2004/ESAF) (1/2)
Analise as seguintes afirmações relativas à programação
Orientada a Objetos:
I. O polimorfismo possibilita que o mesmo nome possa ser
utilizado em diferentes métodos em uma mesma classe, desde
que, por exemplo, as quantidades de parâmetros sejam
diferentes.
II. Os métodos estáticos, quando executados, acessam apenas
os atributos de instância da classe.
III. O uso de um mesmo nome para identificar diferentes
implementações dos métodos pode ocorrer na definição de
construtores.
Professor Marcelo Pacote - @professorpacote 56
W W W. D OMI NAND OTI .COM.B R
Exercício [03] (CGU/2004/ESAF) (2/2)
IV. Na hierarquia de classes, a herança múltipla ocorre quando
existem diversas classes imediatamente abaixo da classe em
questão.
Estão corretos os itens:
a) I e II
b) II e III
c) III e IV
d) I e III
e) II e IV
Professor Marcelo Pacote - @professorpacote 57
W W W. D OMI NAND OTI .COM.B R
Exercício [04] (CGU/2008/ESAF)
Na linguagem de programação Java, pode-se definir a visibilidade dos métodos e
atributos. Com relação a essa característica, é correto afirmar que:
a) métodos declarados como public em uma superclasse, quando herdados, precisam
ser protected em todas as subclasses dessa classe.
b) métodos declarados como protected em uma superclasse, quando herdados,
precisam ser protected ou public nas subclasses dessa classe.
c) o nível de acesso protected é mais restritivo do que o nível de acesso default.
d) métodos declarados como public só podem ser acessados a partir dos métodos da
própria classe ou de classes derivadas.
e) métodos declarados como default só podem ser acessados a partir dos métodos da
própria classe.
Professor Marcelo Pacote - @professorpacote 58
W W W. D OMI NAND OTI .COM.B R
Exercício [05] (MPU/2004/ESAF)
Na linguagem de programação Java as visibilidades dos atributos e dos
métodos podem ser públicas, privadas e protegidas. O acesso aos
atributos e aos métodos privados
a) só pode ser feito a partir dos métodos que contenham atributos
protegidos.
b) não pode ser feito a partir dos métodos membros da classe.
c) só pode ser feito a partir dos objetos encapsulados.
d) só pode ser feito a partir dos métodos de qualquer classe.
e) só pode ser feito a partir dos métodos membros da classe.
Professor Marcelo Pacote - @professorpacote 59
W W W. D OMI NAND OTI .COM.B R
Exercício [06] (CGU/2008/ESAF) (1/2)
Com relação aos conceitos de programação orientada a objetos,
é correto afirmar que
a) métodos abstratos são aqueles que não devem ser
redefinidos em classes derivadas, devem ser herdados tal como
foram definidos.
b) métodos estáticos são aqueles que, ao serem executados,
não acessam atributos de instância da classe.
c) métodos finais, também conhecidos como finalizadores ou
destrutores, são chamados na destruição de uma instância.
Professor Marcelo Pacote - @professorpacote 60
W W W. D OMI NAND OTI .COM.B R
Exercício [06] (CGU/2008/ESAF) (2/2)
d) métodos construtores são métodos chamados sobre um
objeto quando ele é criado. Em Java, os construtores têm o
mesmo nome da classe da qual são membros e o tipo retornado
por eles é especificado na sua definição.
e) métodos de classe são aqueles que executam operações que
afetam objetos individuais da classe.
Professor Marcelo Pacote - @professorpacote 61
W W W. D OMI NAND OTI .COM.B R
Exercício [07] (CGU/2012/ESAF)
Polimorfismo é
a) a multiplicidade de atributos de determinada classe.
b) a propriedade de um diagrama de classes ter múltiplas classes
possuidoras de atributos.
c) a habilidade de um atributo ou variável poder identificar instâncias de
classes com atributos dependentes.
d) a propriedade de uma instrução poder apontar para múltiplos objetos de
uma mesma classe sem implicações de desempenho.
e) a habilidade pela qual uma única operação ou nome de atributo pode
ser definido em mais de uma classe e assumir implementações diferentes
em cada uma dessas classes.
Professor Marcelo Pacote - @professorpacote 62
W W W. D OMI NAND OTI .COM.B R
Exercício [08] (STN/2008/ESAF) (1/2)
Considere a hierarquia de classes:
MeioDeLocomocao é superclasse de
Bicicleta e Moto; Moto implementa a
interface Motorizado. Sendo assim,
considerando o fragmento de código
em Java abaixo, é correto afirmar
que o código
MeioDeLocomocao meio;
Bicicleta b1, b2;
Moto m1, m2;
Motorizado motor;
b1 = new Bicicleta();
meio = b1;
b2 = (Bicicleta)meio;
m1 = new Moto();
motor = m1;
m2 = (Moto)meio;
Professor Marcelo Pacote - @professorpacote 63
1
2
3
4
5
6
7
8
9
10
11
12
W W W. D OMI NAND OTI .COM.B R
Exercício [08] (STN/2008/ESAF) (2/2)
a) compila e executa.
b) não compila, devido a erro na linha 8.
c) compila, mas não executa, lançando uma exceção na linha 8.
d) compila, mas não executa, lançando uma exceção na linha
11.
e) compila, mas não executa, lançando uma exceção na linha
12.
Professor Marcelo Pacote - @professorpacote 64
W W W. D OMI NAND OTI .COM.B R
Exercício [09] (SUSEP/2010/ESAF)
Polimorfismo é a
a) utilização múltipla de programas em análise orientada a objetos.
b) habilidade de uma única operação ou nome de atributo ser definido em
mais de uma classe e assumir diferentes implementações em cada uma
dessas classes.
c) habilidade de um programador em desenvolver aplicações e
caracterizar objetos com múltiplos atributos.
d) utilização de uma classe com diferentes formatos em programas com
definição de objetos e atributos.
e) habilidade de uma única variável ser utilizada em diferentes programas
orientados a objetos.
Professor Marcelo Pacote - @professorpacote 65
W W W. D OMI NAND OTI .COM.B R
Se, na superclasse, um método é declarado protected, o(s)
modificador(es) aplicável(is) na sobrescrita do método é(são)
a) private.
b) private e protected.
c) “default”.
d) protected, “default” e public.
e) protected e public.
Exercício [10] (ANA/ESAF/2009)
66 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Gabarito
[01] c
[02] a
[03] d
[04] b
[05] e
[06] b
[07] e
[08] e
[09] b
[10] e
Professor Marcelo Pacote - @professorpacote 67
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Anexo II
Exercícios Complementares
CESGRANRIO
Professor Marcelo Pacote – @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [01] (PETRO/2012/CESGRANRIO)
Ao escrever o código da Classe PortaDeCofre em Java para que
ela atenda a interface Porta, como um programador deve
começar a declaração da classe?
a) public class Porta:PortaDeCofre {
b) public class PortaDeCofre :: Porta {
c) public classPortaDeCofre inherits Porta {
d) public class PortaDeCofre extends Porta {
e) public class PortaDeCofre implements Porta {
Professor Marcelo Pacote - @professorpacote 69
W W W. D OMI NAND OTI .COM.B R
Exercício [2] (PETROBRAS/2010/CESGRANRIO) (1/2)
Professor Marcelo Pacote - @professorpacote 70
W W W. D OMI NAND OTI .COM.B R
Exercício [2] (PETROBRAS/2010/CESGRANRIO) (2/2)
Analisando o código, verifica-se que o programa
a) não compila: erro na linha 04 de C2.
b) não compila: erro na linha 08 de C2.
c) não compila: erro na linha 09 de C2.
d) executa e imprime C1.
e) executa e imprime C2.
Professor Marcelo Pacote - @professorpacote 71
W W W. D OMI NAND OTI .COM.B R
Exercício [3] (PETROBRAS/2010/CESGRANRIO) (1/2)
Professor Marcelo Pacote - @professorpacote 72
W W W. D OMI NAND OTI .COM.B R
Exercício [3] (PETROBRAS/2010/CESGRANRIO) (2/2)
Analisando o código ao lado, verifica-se que o programa
a) compila e executa imprimindo na saída padrão C1 duas vezes.
b) compila e executa imprimindo na saída padrão C2 e C3.
c) não compila, pois classes abstratas não podem ser instanciadas.
d) não compila, pois há incompatibilidade de tipos em atribuição.
e) não compila, pois um vetor foi construído de forma incorreta.
Professor Marcelo Pacote - @professorpacote 73
W W W. D OMI NAND OTI .COM.B R
Exercício [4] (PETROBRAS/2010/CESGRANRIO) (1/2)
Professor Marcelo Pacote - @professorpacote 74
W W W. D OMI NAND OTI .COM.B R
Exercício [4] (PETROBRAS/2010/CESGRANRIO) (2/2)
A saída da execução da classe A é
a) 1
b) 2
c) 3
d) 4
e) 5
Professor Marcelo Pacote - @professorpacote 75
W W W. D OMI NAND OTI .COM.B R
Exercício [5] (PETROBRAS/2010/CESGRANRIO) (1/2)
Professor Marcelo Pacote - @professorpacote 76
W W W. D OMI NAND OTI .COM.B R
Exercício [5] (PETROBRAS/2010/CESGRANRIO) (2/2)
A classe B acima encontra-se no mesmo pacote que a classe A.
O método m1 apresenta erro de compilação porque a seguinte
variável não pode ser acessada no ponto
a) a
b) b
c) c
d) d
e) e
Professor Marcelo Pacote - @professorpacote 77
W W W. D OMI NAND OTI .COM.B R
Exercício [6] (PETROBRAS/2010/CESGRANRIO) (1/2)
Professor Marcelo Pacote - @professorpacote 78
W W W. D OMI NAND OTI .COM.B R
Exercício [6] (PETROBRAS/2010/CESGRANRIO) (2/2)
Ao tentar compilar e executar o código acima, o resultado será
a) a correta compilação e execução do código, com a exibição na saída
padrão da sequência BC.
b) a correta compilação e execução do código, com a exibição na saída
padrão da sequência ABAC.
c) um erro de compilação, pois A é uma classe abstrata e não pode ter
instâncias, como obj.
d) um erro de compilação, pois obj é da classe A e tentasse instanciá-lo
como sendo um objeto da classe B.
e) um erro de execução, pois uma vez feito o binding de obj com a classe
B, não se pode mudar a classe do mesmo.
Professor Marcelo Pacote - @professorpacote 79
W W W. D OMI NAND OTI .COM.B R
Exercício [7] (BNDES/2009/CESGRANRIO)
Qual das afirmações a seguir faz uma apreciação correta a respeito da linguagem de
programação Java?
a) O conceito de herança múltipla é implementado nativamente.
b) Uma classe pode implementar somente uma interface ao mesmo tempo.
c) Uma classe pode implementar uma interface ou ser subclasse de outra classe
qualquer, mas não ambos simultaneamente.
d) A construção de um método que pode levantar uma exceção, cuja instância é uma
subclasse de java.lang.RuntimeException, não exige tratamento obrigatório por parte
do programador dentro daquele método.
e) Objetos da classe java.lang.String têm comportamento otimizado para permitir que
seu valor seja alterado sempre que necessário, liberando imediatamente a memória
usada pelo conteúdo anterior.
Professor Marcelo Pacote - @professorpacote 80
W W W. D OMI NAND OTI .COM.B R
Exercício [08] (PETR/2011/CESGRANRIO) (1/3)
Professor Marcelo Pacote - @professorpacote 81
W W W. D OMI NAND OTI .COM.B R
Exercício [08] (PETR/2011/CESGRANRIO) (2/3)
Professor Marcelo Pacote - @professorpacote 82
W W W. D OMI NAND OTI .COM.B R
Exercício [08] (PETR/2011/CESGRANRIO) (3/3)
O resultado, obtido ao tentar compilar e executar esse conjunto de classes,
será
a) um erro de compilação, indicando que não é possível fazer uma conversão
da classe Concreta1 para a classe Interface1.
b) um erro de compilação, indicando que, no contexto de x, não existe
metodoExotico.
c) nenhuma saída e um erro em tempo de execução, indicando que, dada a
conversão de Concreta1 para Interface1, não é possível acessar metodoExotico.
d) impressão do número 1, seguida de um erro de tempo de execução,
indicando que, dada a conversão de Concreta1para Interface1, não é possível
acessar metodoExotico.
e) impressão dos números 1 e 2.
Professor Marcelo Pacote - @professorpacote 83
W W W. D OMI NAND OTI .COM.B R
Gabarito
[01] e
[02] c
[03] b
[04] c
[05] e
[06] b
[07] d
[08] b
Professor Marcelo Pacote - @professorpacote 84
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Anexo III
Exercícios Complementares
FCC
Professor Marcelo Pacote – @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [1] (TRF-2/2012/FCC) (1/2)
Sobre orientação a objetos é correto afirmar:
a) Na hierarquia de classes, se superclasse é uma
generalização de subclasses, pode-se inferir que a subclasse é
uma especialização de superclasse.
b) Numa árvore genealógica de classes, a classe mais baixa
herda os atributos e métodos somente da superclasse no nível
imediatamente acima.
c) As variáveis de uma classe só podem ser alteradas por
métodos definidos nos seus objetos.
Professor Marcelo Pacote - @professorpacote 86
W W W. D OMI NAND OTI .COM.B R
Exercício [1] (TRF-2/2012/FCC) (2/2)
d) O polimorfismo se caracteriza quando, para mensagens
distintas, objetos diferentes responderem ou agirem de forma
idêntica.
e) Os objetos de uma classe são idênticos no que se refere à
sua interface e ao seu estado.
Professor Marcelo Pacote - @professorpacote 87
W W W. D OMI NAND OTI .COM.B R
Exercício [2] (TRF-2/2012/FCC) (1/2)
Em relação às formas de relacionamentos em herança,
considere:
I. A classe derivada acrescenta atributos e funcionalidades ao
que já fora definido na superclasse.
II. A classe derivada oferece implementação a funcionalidades
declaradas na superclasse.
III. A classe derivada implementa especificação e reaproveita
funcionalidades da superclasse.
Professor Marcelo Pacote - @professorpacote 88
W W W. D OMI NAND OTI .COM.B R
Exercício [2] (TRF-2/2012/FCC) (2/2)
Os itens I, II e III referem-se, respectivamente, a
a) especificação, herança estrita e combinação de especificação
e herança estrita.
b) herança estrita, herança polimórfica e extensão.
c) extensão, especificação e herança polimórfica.
d) herança polimórfica, combinação de especificação e herança
estrita e especificação.
e) especificação, extensão e contração.
Professor Marcelo Pacote - @professorpacote 89
W W W. D OMI NAND OTI .COM.B R
Exercício [3] (TRE-SP/2012/FCC) (1/2)
Sobre herança na orientação a objetos com Java é correto afirmar:
a) Um erro de compilação ocorre se um construtor de subclasse chamar um de
seus construtores de superclasse com argumentos que não correspondem
exatamente ao número e tipos de parâmetros especificados em uma das
declarações de construtor de superclasse.
b) Com a herança, as variáveisde instância comuns e os métodos de todas as
classes na hierarquia são declarados em uma subclasse. Quando as alterações
são requeridas para esses recursos comuns, os desenvolvedores só precisam
fazer as alterações na subclasse - as superclasses herdam as alterações.
c) É aconselhável utilizar o modificador de acesso public quando uma superclasse
precisar fornecer um método somente para suas subclasses e outras classes do
mesmo pacote, mas não para outros clientes.
Professor Marcelo Pacote - @professorpacote 90
W W W. D OMI NAND OTI .COM.B R
Exercício [3] (TRE-SP/2012/FCC) (2/2)
d) Não é adequado sobrescrever na subclasse métodos da
superclasse para fornecer versões que são mais apropriadas
para os objetos da subclasse.
e) Quando um programa cria um objeto da superclasse, o
construtor da superclasse imediatamente chama o construtor
da subclasse (explicitamente, via super ou implicitamente).
Professor Marcelo Pacote - @professorpacote 91
W W W. D OMI NAND OTI .COM.B R
Exercício [4] (TJ-RJ/2012/FCC)
Na orientação a objetos, em uma relação de herança entre classes, a
subclasse herda da superclasse
a) apenas as variáveis públicas de instância.
b) apenas os métodos e variáveis de instância públicos.
c) todas as variáveis de instância e apenas os métodos estáticos.
d) todas as variáveis e métodos, exceto os públicos e os que foram
sobrescritos.
e) todas as variáveis de instância e os métodos, entretanto, podem
explicitamente sobrescrever alguns destes componentes.
Professor Marcelo Pacote - @professorpacote 92
W W W. D OMI NAND OTI .COM.B R
Exercício [5] (TRE-SP/2012/FCC/Analista) (1/2)
No contexto de programação orientada a objetos, considere as
afirmativas abaixo.
I. Objetos são instâncias de classes.
II. Herança é uma relação entre objetos.
III. Mensagens são formas de executar métodos.
IV. Classes são apenas agrupamentos de métodos.
V. Ocorre herança múltipla quando mais de um método é
herdado.
VI. Herança é uma relação entre classes.
Professor Marcelo Pacote - @professorpacote 93
W W W. D OMI NAND OTI .COM.B R
Exercício [5] (TRE-SP/2012/FCC/Analista) (2/2)
Está correto o que se afirma APENAS em
a) I, III e IV
b) I, III e VI
c) III, IV e VI.
d) II, III e V.
e) II, IV e V.
Professor Marcelo Pacote - @professorpacote 94
W W W. D OMI NAND OTI .COM.B R
Exercício [6] (TRE-CE/2012/FCC/Analista)
Sobre orientação a objetos, é INCORRETO afirmar:
a) os conceitos de generalização e especialização da orientação a objetos estão
diretamente associados ao conceito de herança.
b) um objeto pode existir mesmo que não exista nenhum evento a ele
associado.
c) um construtor visa inicializar os atributos e pode ser executado
automaticamente sempre que um novo objeto é criado.
d) polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma
mesma superclasse podem invocar métodos que têm a mesma assinatura e
mesmo comportamento.
e) uma classe define o comportamento dos objetos através de seus métodos, e
quais estados ele é capaz de manter através de seus atributos.
Professor Marcelo Pacote - @professorpacote 95
W W W. D OMI NAND OTI .COM.B R
Exercício [07] (TRE-PI/2009/FCC) (1/2) - adaptada
Em relação à programação orientada a objetos, considere:
I. A afirmação de que o estado de um objeto não deve ser acessado
diretamente, mas sim por meio de métodos de acesso, está
associada ao conceito de encapsulamento.
II. A classe é constituída por atributos que representam os dados e
operações que representam os métodos que podem ser
executados.
III. Herança pode ser compreendida como a propriedade que uma
classe tem em legar seus elementos constituintes à sua subclasse.
Professor Marcelo Pacote - @professorpacote 96
W W W. D OMI NAND OTI .COM.B R
Exercício [07] (TRE-PI/2009/FCC) (2/2) - adaptada
Está correto o que se afirma em
a) I, II, III
b) I e II apenas.
c) I e III apenas.
d) II e III, apenas.
e) III apenas.
Professor Marcelo Pacote - @professorpacote 97
W W W. D OMI NAND OTI .COM.B R
Exercício [08] (TRF-4/2010/FCC) (1/2)
Sobre a orientação a objetos, é correto afirmar:
a) Variáveis e métodos de classe pública (public) existem e
podem ser utilizados, mesmo se nenhum objeto dessa classe
tiver sido instanciado.
b) Os modificadores de acesso public, private e protected
controlam o acesso apenas aos métodos de uma classe.
c) É possível criar vários construtores sobrecarregados em uma
classe para permitir que objetos dessa classe sejam
inicializados de diferentes maneiras.
Professor Marcelo Pacote - @professorpacote 98
W W W. D OMI NAND OTI .COM.B R
Exercício [08] (TRF-4/2010/FCC) (2/2)
d) Um construtor invocado sem argumentos inicializa o objeto,
mas causa um erro em tempo de execução, pois todo
construtor de classe deve receber pelo menos um parâmetro.
e) Ao implementar um método de uma classe, devem ser
utilizados os métodos set e get da classe para acessar apenas
os dados públicos (public) da classe.
Professor Marcelo Pacote - @professorpacote 99
W W W. D OMI NAND OTI .COM.B R
Exercício [09] (TRT-3/2009/FCC)
Na programação orientada a objeto,
a) um construtor serve para inicializar os atributos e é executado
automaticamente sempre que ocorre a criação de um novo objeto.
b) atributos são classes que se encontram dentro de cada um dos objetos
restritos a determinados tipos.
c) encapsulamento consiste na aglutinação de aspectos internos e externos
de um objeto.
d) métodos são variáveis que se encontram dentro de cada um dos objetos de
uma classe.
e) classe abstrata é uma classe que representa uma coleção de
características presentes num mesmo tipo de objeto, mas que também pode
existir isoladamente.
Professor Marcelo Pacote - @professorpacote 100
W W W. D OMI NAND OTI .COM.B R
Exercício [10] (TRT-24/2011/FCC) (1/2)
Em relação à orientação a objetos, considere:
Um dos mecanismos fundamentais na programação orientada a
objetos é o conceito de redefinição, que ocorre quando um
método, cuja assinatura já tenha sido especificada, recebe uma
nova definição em uma classe derivada.
A linguagem de programação orientada a objetos deve suportar
o conceito de ligação tardia (late binding), visto que a definição
do método que é candidato a ser efetivamente invocado só
ocorre durante a execução do programa.
Professor Marcelo Pacote - @professorpacote 101
W W W. D OMI NAND OTI .COM.B R
Exercício [10] (TRT-24/2011/FCC) (2/2)
O mecanismo de redefinição, juntamente com o conceito de
ligação tardia, é a chave para a utilização adequada de
a) polimorfismo.
b) objeto de classes derivadas.
c) restrições de acesso.
d) polimorfismo e herança.
e) dois métodos de uma mesma classe.
Professor Marcelo Pacote - @professorpacote 102
W W W. D OMI NAND OTI .COM.B R
Exercício [11] (TRE-CE/2012/FCC)
O método soma representa um exemplo de
a) sobrescrita de métodos.
b) herança de parâmetros.
c) recursividade.
d) encapsulamento.
e) sobrecarga de métodos.
Professor Marcelo Pacote - @professorpacote 103
W W W. D OMI NAND OTI .COM.B R
Exercício [12] (TRE-CE/2012/FCC)
Com relação a herança na programação orientada a objetos com Java, é
INCORRETO afirmar:
a) Uma subclasse herda os métodos da superclasse, entretanto, pode ter
seus próprios métodos.
b) Quando se instancia um objeto da subclasse, podem ser passados valores
para os atributos da superclasse.
c) Um objeto da subclasse pode ser um objeto dasuperclasse.
d) Em uma superclasse, para acessar métodos da subclasse deve ser usada
a instrução super.
e) Para definir que a subclasse herda as características da superclasse
utiliza-se a instrução extends na declaração da subclasse.
Professor Marcelo Pacote - @professorpacote 104
W W W. D OMI NAND OTI .COM.B R
Gabarito
[01] a
[02] c
[03] a
[04] e
[05] b
[06] d
[07] a
[08] c
[09] a
[10] a
[11] e
[12] d
Professor Marcelo Pacote - @professorpacote 105
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Anexo IV
Exercícios Complementares
CESPE,FGV e outras bancas
Professor Marcelo Pacote – @professorpacote
W W W. D OMI NAND OTI .COM.B R
Exercício [01] (DETRAN-ES/2010/CESPE)
A respeito da orientação a objetos e das respectivas linguagens
de programação, julgue o item:
( ) De acordo com a programação orientada a objetos, por meio
da qual o objeto é dividido em métodos e propriedades, ocorre
polimorfismo em situações em que apenas os aspectos
externos do objeto são visíveis, o que possibilita que as
alterações na implementação do programa mantenham a
característica física do objeto, sem alterar sua forma e
interface.
Professor Marcelo Pacote - @professorpacote 107
W W W. D OMI NAND OTI .COM.B R
Exercício [02] (EBC/2011/CESPE)
( ) A herança representa uma generalização, dessa forma, por
meio de herança é feito o compartilhamento de atributos e
operações entre classes, com base em um relacionamento
hierárquico.
Professor Marcelo Pacote - @professorpacote 108
W W W. D OMI NAND OTI .COM.B R
Exercício [03] (PGDF/2011/IADES)
Dentro do paradigma de programação orientada a objetos (POO), há
um mecanismo utilizado para impedir o acesso direto ao estado de
um objeto, restando apenas os métodos externos que podem alterar
estes estados. Assinale a alternativa que apresenta o nome deste
mecanismo.
a) Mensagem
b) Herança
c) Polimorfismo
d) Encapsulamento
e) Subclasse
Professor Marcelo Pacote - @professorpacote 109
W W W. D OMI NAND OTI .COM.B R
Exercício [04] (ANAC/2009/CESPE)
( ) Na programação orientada a objetos, o conceito de herança
pode ser utilizado mediante a criação de subclasses a partir de
classes anteriormente criadas. Em Java, as subclasses herdam
as variáveis de instância e os métodos de instância da
superclasse, podendo ter acesso a todos os membros private e
protected da referida superclasse.
Professor Marcelo Pacote - @professorpacote 110
W W W. D OMI NAND OTI .COM.B R
Exercício [05] (MEC/2009/FGV/Desenvolvedor) (1/2)
A respeito da linguagem Java, é incorreto afirmar que:
a) O modificador final, quando utilizado na assinatura de uma
classe, indica que ela é uma classe que não pode ser estendida.
b) O modificador abstract, quando utilizado na assinatura de uma
classe, indica que ela é uma classe que não pode ser instanciada.
c) Quando se utiliza o modificador private em um membro de uma
classe, significa que esse membro se torna visível apenas para os
outros membros da própria classe.
Professor Marcelo Pacote - @professorpacote 111
W W W. D OMI NAND OTI .COM.B R
Exercício [05] (MEC/2009/FGV/Desenvolvedor) (2/2)
d) Em um sistema desenvolvido em Java, cada arquivo do
sistema operacional de código fonte só pode ter uma única
classe e essa classe tem que ter o mesmo nome do arquivo.
e) Quando se utiliza o modificador protected em um membro de
uma classe, significa que esse membro se torna visível para as
subclasses e para as classes que pertençam ao mesmo pacote.
Professor Marcelo Pacote - @professorpacote 112
W W W. D OMI NAND OTI .COM.B R
Exercício [06] (TJ-ES/2011/CESPE)
( ) Na programação orientada a objetos, o encapsulamento
representa a ação em que diversas implementações de uma
operação utilizam vários tipos de parâmetros diferentes.
Professor Marcelo Pacote - @professorpacote 113
W W W. D OMI NAND OTI .COM.B R
Exercício [07] (MPE-PI/2012/CESPE)
( ) Em Java, qualquer método de uma classe pode ser
sobrescrito por métodos de outra classe.
Professor Marcelo Pacote - @professorpacote 114
W W W. D OMI NAND OTI .COM.B R
Exercício [08] (INPI/2013/Cespe/Desv/79)
( ) Ao se utilizar o encapsulamento, não é necessário saber
como ele funciona internamente, apenas como transmite os
seus atributos.
115 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
(Unipampa/2013/Cespe/79)
( ) A programação orientada a objetos introduziu no
desenvolvimento de sistemas a criação de módulos de
programas para a reutilização de código.
116 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
(TRT-10/2013/Cespe/An. Jud./65) - adaptada
( ) O trecho de código mostrado abaixo é um exemplo de
encapsulamento.
public class Animal {
public String nome;
public String tipo;
public String corDoPelo;
}
public class Cavalo extends Animal {
public String raca;
}
117 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
(PF/2013/Cespe/Perito/69)
( ) Coesão e acoplamento são dois critérios úteis para se
analisar a qualidade da interface pública de uma classe. A
interface pública será considerada coesa se todos os seus
recursos estiverem relacionados ao conceito que a classe
representa, enquanto, no acoplamento, uma classe é
dependente de outra.
118 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
(INPI/2013/Cespe/Desv./78)
No que se refere à programação orientada a objetos, julgue os
itens que se seguem.
Em uma operação de sobrecarga, uma classe derivada pode
redefinir operações de sua classe base.
119 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
(INPI/2013/Cespe/Desv./80)
Com relação à linguagem Java, julgue os próximos itens.
Uma classe pode acessar atributos de uma superclasse mesmo
quando eles são declarados como private.
120 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
(TCE-ES/2012/Cespe/Auditor/124)
Julgue o item abaixo, relativo a polimorfismo, um dos conceitos
relacionados à orientação a objetos.
( ) A implementação de polimorfismo envolve o mecanismo de
redefinição de métodos, assim como o conceito de ligação
tardia.
121 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
(TRE-RJ/2012/Cespe/Téc. judiciário/60)
Considerando conceitos e aplicações do paradigma de
orientação a objetos, julgue os próximos itens.
As heranças, que são princípios de orientação a objetos,
permitem o compartilhamento de atributos e métodos pelas
classes e são usadas com o intuito de se reaproveitar código ou
comportamento generalizado ou especializar operações ou
atributos.
122 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
(TRE-RJ/2012/Cespe/Téc. judiciário/61)
Cada classe pode ter implementações de operação — ou
métodos — com denominações únicas. Classes diferentes
podem ter métodos com denominações iguais, porém, uma
classe não pode ter métodos com denominações iguais e
parâmetros diferentes.
123 Professor Marcelo Pacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
(TRE-RJ/2012/Cespe/Téc. judiciário/62)
Polimorfismo consiste em focalizar nos aspectos essenciais
inerentes a uma entidade e ignorar propriedades acidentais ou
menos importantes. No desenvolvimento de sistemas, isso
significa concentrar-se no que um objeto é e no que ele faz
antes de se decidir como esse objeto será implementado.
124 Professor MarceloPacote - @professorpacote
W W W. D OMI NAND OTI .COM.B R
Gabarito
[01] errado
[02] certo
[03] d
[04] errado
[05] d
[06] errado
[07] errado
[08] certo
(Unipampa/2013/Cespe/79) errado
(TRT-10/2013/Cespe/An. Jud./65)
errado
Professor Marcelo Pacote - @professorpacote 125
(PF/2013/Cespe/Perito/69) certo
(INPI/2013/Desv./78) errado
(INPI/2013/Desv./80) errado
(TCE-ES/2012/Auditor/124) certo
(TRE-RJ/2012/Téc. Judiciário/60) certo
(TRE-RJ/2012/Téc. Judiciário/61) errado
(TRE-RJ/2012/Téc. Judiciário/62) errado