Prévia do material em texto
Programação orientada a Objetos
Unidade 1
1. A POO é um paradigma de programação com base no conceito de "objetos" que podem
assumir dados na forma de campos, também conhecidos como propriedades de um código.
Métodos e classes também são importantes na POO.
Em relação ao papel das classes, assinale a resposta correta.
B. É a partir das classes que a linguagem orientada a objetos se estrutura.
2. Um objeto é instanciado por meio de uma classe. A diferença é que um objeto em Java é
a entidade física e lógica, ao passo que uma classe em Java é considerada apenas como
uma entidade lógica.
Em relação à forma geral de uma classe, assinale a resposta correta.
C. Uma classe é criada com a palavra-chave class.
3. Um dos maiores desafios da POO é satisfazer o cliente, entregando um produto de
qualidade. No entanto, a maior vantagem está na forma como suas características
possibilitam minimizar a complexidade no desenvolvimento e na manutenção de software,
aumentando a produtividade durante o processo de desenvolvimento.
Os objetos são os elementos básicos da POO. Sobre os objetos e suas características,
assinale a resposta correta.
B. São compostos por estado e comportamento.
4. Na linguagem de programação Java, a visibilidade padrão dos objetos, classes, atributos
e métodos está limitada ao mesmo conjunto de elementos, ou seja, todos devem estar
inseridos em um mesmo pacote. No código-fonte, a palavra-chave public modifica a
visibilidade, excluindo as restrições e tornando o código mais amplo.
Analise o código a seguir e selecione a afirmativa correta:
public class Veiculo {
private String placa;
private String cor;
private int anoFabricacao;
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public int getAnoFabricacao() {
return anoFabricacao;
}
public void setAnoFabricacao(int anoFabricacao) {
this.anoFabricacao = anoFabricacao;
}
}
B. As palavras-chave this em this.cor, this.placa e this.anoFrabricacao informam ao
método que estamos nos referindo à variável de instância.
5. A POO foi criada como uma alternativa para a programação estruturada, trazendo
proximidade entre as "coisas" do mundo real e os objetos, criados no mundo virtual para
refletir a realidade. Um objeto é algo genérico que pode definir qualquer coisa tangível.
Quais são os componentes implementados para realizar algum tipo de tarefa?
D. Métodos.
Unidade 2
1. É importante que o desenvolvedor compreenda a importância de manter as tarefas a
serem executadas na construção de um código de maneira organizada. Assim como as
boas práticas, os processos também devem ser conduzidos na ordem correta, considerando
também a importância de cada um deles.
Em orientação a objetos, como devemos começar as atividades de programação?
D. Identificando objetos e as classes às quais eles pertencem.
2. Ao criar um aplicativo, podem ser criadas diferentes classes, o que também traz maior
coesão ao programa. Se uma classe com o nome “Cadastro” for criada, ainda não estará
claro qual será sua responsabilidade, mas, se uma segunda classe, denominada “Cliente”,
for criada, é evidente que seu objetivo será tratar da criação do objeto “Cliente”.
Considerando as informações sobre as classes, o que é correto afirmar?
C. Se você não pode afirmar, a partir do nome da classe, o que um objeto da classe
supostamente deve fazer, provavelmente você não está no caminho certo.
3. No contexto de desenvolvimento de software, em diversas situações, os desenvolvedores
passam por problemas ou encontram bugs que precisam ser corrigidos, por influenciarem
negativamente a funcionalidade de um aplicativo. Para evitar tais defeitos, alguns princípios
podem ser aplicados, em conjunto com as boas práticas de programação.
Referente a coesão e acoplamento, o que se pode afirmar?
C. Quando a interface pública de uma classe referencia vários conceitos, é um bom
sinal de que pode ser hora de utilizar classes separadas.
4. É uma boa prática evitar conflitos gerados pela nomeação incorreta de classes. Existem
recursos que facilitam a escrita do código e auxiliam no processo de manter os objetos e
todos os outros componentes atualizados. Os pacotes facilitam a busca ou pesquisa de
classes, interfaces e enumerações.
Ainda sobre os pacotes, o que é correto afirmar?
E. São um conjunto de classes relacionadas.
5. Analise o código abaixo:
/*
package media;
public class calcularMedia {
private double nota1;
private double nota2;
private double media;
private int matricula;
private String nome;
public void calcularMedia(double nota1, double nota2){
this.nota1 = nota1;
this.nota2 = nota2;
media = (nota1 + nota2)/2;
}
public void cadastrarAluno(int cod, String matricula){
this.cod=cod;
this.matricula = matricula;
}
}
*/
O que é correto afirmar?
D. Essa classe não apresenta coesão.
Unidade 3
1. Na programação orientada a objetos, uma variável é um recurso capaz de armazenar um
ou mais valores na memória do programa. O valor pode ser acessado em qualquer parte do
programa, sempre que necessário, desde que seja declarado corretamente.
Sobre as variáveis, marque a alternativa correta.
A. Uma variável estática representa informações em nível de classe.
2. As palavras-chaves, ou palavras reservadas, são utilizadas na estrutura de uma
linguagem de programação para chamar métodos, funções e recursos nativos, garantindo
que o termo não possa ser utilizado pelo desenvolvedor para outras funcionalidades. Da
mesma forma, a declaração de uma variável de classe utiliza uma palavra-chave para ser
invocada.
Selecione a alternativa que representa a palavra-chave correta.
E. static.
3. Um método em Java é equivalente a uma função, sub-rotina ou procedimento em outras
linguagens de programação. O Java não trata dos métodos como globais. Cada método
deve ser definido dentro de uma classe conforme suas características próprias.
Em relação aos métodos estáticos ou de classes, marque a afirmativa correta.
E. Métodos estáticos são declarados colocando-se a palavra-chave static antes do
tipo de retorno.
4. Os métodos de classes são definidos como funções independentemente de qualquer
variável de instância atribuída aos objetos. Os métodos são invocados sem depender de
nenhum objeto e suas características.
Analise as afirmativas a seguir e marque a alternativa correta:
I. Para um método de classe acessar membros de classe não estáticos, deve-se colocar a
palavra-chave static no membro a ser acessado.
II. Um método estático não pode acessar membros de classe não estáticos.
III. Para acessar membros de classe não estáticos, é preciso colocar a palavra-chave
protected no membro a ser acessado e declarar o método usando o get na frente do seu
nome.
Está correto o que se afirma em:
C. II, apenas.
5. A programação orientada a objetos é um modelo de programação em que o
desenvolvedor pode trabalhar com diferentes linguagens de programação. Em Java, é
possível trabalhar com várias classes, que têm as características de definir objetos na vida
real. Cada classe determina o comportamento de um objeto. Tanto as classes como os
métodos são importantes e marcados por diferentes estados definidos por propriedades.
Nesse contexto, marque a alternativa correta.
C. Se um método estático tentar acessar outro método não estático da classe usando
somente o nome do método, ocorrerá um erro de compilação.
Unidade 4
1. O controle de acesso aos atributos e aos métodos de uma classe é muito importante na
POO, independentemente da linguagem de programação utilizada. E o encapsulamento é o
processo que define diferentes níveis de restrições a serem atribuídos ao código-fonte.
Em relação ao encapsulamento, assinale a alternativa correta.
D. Encapsular é um processo de alta complexidade, visto que o usuário precisa estar
exposto a todos os processos executados pelo desenvolvedor para lhe fornecer os
recursos por meio de um programa.
2. Osatributos são as propriedades de um objeto e também são conhecidos como variáveis
ou campos. O objetivo é definir o estado de um projeto, permitindo que os valores sofram as
devidas alterações.
Para encapsular um atributo, deixando-o visível apenas para a classe que o contém, qual
palavra-chave deve ser utilizada?
E. Private.
3. Em Java, existe uma base de encapsulação, em que o comportamento dos dados e o
código são definidos, bem como a forma como serão partilhados com um conjunto de
objetos. Todas as ações relacionadas com a linguagem de programação Java são bem
estruturadas.
Assinale a alternativa que apresenta a unidade básica de encapsulamento em Java.
C. Classe.
4. Os elementos básicos de uma classe são chamados de membros e categorizados como
variáveis que especificam o estado da classe ou objetos de instância e métodos que
especificam o mecanismo por meio do qual uma classe ou objetos podem operar.
Existem diferentes modificadores para declaração de membros sobre o modificador
acessível em subclasses da classe, em subclasses do mesmo pacote e na própria classe.
Com relação a isso, assinale a alternativa correta.
A. Protected.
5. Em um código, strings são tipos de dados utilizados para permitir o armazenamento de
texto e interagem com as classes e os métodos para tratar das informações recebidas pelo
programa.
Considerando essa informação, assinale a alternativa correta.
A. Todos os atributos dessa classe poderão ser acessados apenas por seus
respectivos métodos.
Unidade 5
1. Na orientação a objetos existe um importante conceito, que é a herança.
Marque a alternativa que melhor define herança em orientação a objetos
E. A herança é um mecanismo para aprimorar as classes existentes.
2. A redução de um código permite maior facilidade para que o desenvolvedor possa revisar
seu código, realizar a manutenção dos recursos e ter melhor visibilidade sobre a
implementação de uma aplicação.
Quando é identificada a possibilidade de usar herança em um projeto?
D. Quando há relação em atributos em comum entre duas ou mais classes.
3. Em uma estrutura de programação orientada a objetos, o desenvolvedor deve estar
atento ao comportamento generalizado dos objetos, assim como ao processo de
especialização das operações ou atributos.
Em relação à herança, o que é possível afirmar?
D. Em herança existem classes genéricas e especializadas.
4.
As classes em Java podem ser classificadas em diferentes tipos. Em geral, para declarar as
classes, é necessário criar um nome e certificar-se de que a classe tem um corpo,
especificado dentro de um par de chaves { }. Métodos, atributos e palavras-chaves também
devem ser declarados corretamente.
Analise o seguinte código de uma classe em Java:
public class Agua extends Bebida {
private String ph;
public String getPh(){ return ph;
}
public void setPh(String ph){
this.ph=ph;
}
}
C. A palavra-chave "extends" informa que a classe "Agua" é uma extensão da classe
"Bebida".
5. As classes públicas podem ser acessadas por qualquer outra classe, enquanto as
classes privadas podem ser acessadas apenas por métodos da mesma classe. As
palavras-chave utilizadas são, respectivamente, private e public na linguagem de
programação Java.
Analise o código a seguir:
public class Animal {
private int idAnimal;
private String nome;
private int idade;
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome = nome;
}
public int getIdade(){
return idade;
}
public void setIdade(int idade){
this.idade = idade;
}
}
=================== // ============================
public class Mamifero extends Animal{
private String gestacao;
private String especVida;
public String getGestacao(){
return gestacao;
}
public void setGestacao(String gestacao){
this.gestacao = gestacao;}
public String getEspecVida(){
return especVida;
}
public void setEspecVida(String especVida){
this.especVida = especVida;
}
}
=============================//==========================
public class Cachorro Mamifero{
private String raca;
public String getRaca(){
return raca;
}
public void setRaca(String raca){
this.raca = raca;
}
}
============================//============================
public class Homem extends Mamifero{
private String etnia; public String getEtnia(){
return etnia;
}
public void setEtnia(String etnia){
this.etnia = etnia;
}
}
E. A classe "Homem" é subclasse; a classe "Mamifero" é subclasse e superclasse; e
a classe "Animal" é superclasse.
Unidade 6
1. Em Java, não é possível que uma classe faça herança de múltiplas classes. Outro
conceito importante sobre herança é que, ao programar nessa linguagem, o construtor é
definido como um método que deve ser renomeado da mesma forma que a classe.
Na estrutura de herança, para instanciar uma classe-filha, qual é o construtor utilizado?
B. O construtor da subclasse.
2. Uma linguagem orientada a objetos como Java utiliza construtores para executar a tarefa
de criação de objetos na memória, cujo objetivo é instanciar a classe que foi definida.
Em relação a construtores, analise as afirmações a seguir.
I. O construtor não tem tipo de retorno.
II. Ao nomear um construtor, deve-se colocar o mesmo nome da classe a que pertence.
III. Os modificadores de acesso do construtor podem ser: public, private e protected.
IV. Toda classe em Java tem, no mínimo, um construtor.
V. Construtores não podem ter argumentos.
Está correto o que se afirma em:
E. I, II, III e IV.
3. Para declarar uma classe na linguagem Java, o desenvolvedor faz uso de uma sintaxe
simples, de fácil compreensão e que facilita o processo de criação de atributos,
propriedades e métodos.
A forma geral de uma declaração class que herda uma superclasse é:
A. class nome-subclasse extends nome-superclasse { //corpo da classe }
4. Quando tanto a superclasse quanto a subclasse definem construtores, o processo é um
pouco mais complicado, pois os dois construtores devem ser executados. Nesse caso,
devemos usar outra das palavras-chave do Java.
Marque a alternativa que apresente a palavra-chave a ser usada nessa situação.
E. super.
5. Ao criar uma aplicação em que a classe-pessoa é a classe-pai da classe-aluno, tem-se o
seguinte:
Na classe-pessoa, o atributo de nome é privado, por isso o acesso não pode ser feito pela
classe-aluno. Para um sistema no qual a classe-pessoa não tem o nome alterado, o
constructor pessoa (String nome) instancia a classe com o nome dado.
Analise as afirmações a seguir.
I. Quando uma classe chama super(), está chamando o construtor de sua superclasse
imediatamente.
II. super( ) sempre referencia a superclasse imediatamente acima da classe chamadora.
III. super( ) deve ser sempre a primeira instrução executada dentro de um construtor de
subclasse.
IV. A única forma de usar super é a seguinte: super().
V. Há uma segunda forma de super que age um pouco como this, exceto por referenciar
sempre a superclasse da subclasse em que é usada. Essa aplicação tem a forma geral a
seguir: super.membro.
Está correto o que se afirma em:
E. I, II, III e V.
Unidade 7
1. A sobrescrita permite aplicar a modelagem sobre diagramas de classes e suas
definições. Além disso, pode ser elaborada considerando a declaração de nome de uma
classe com uma ou mais subclasses atribuídas a si.
Um método pode ser sobrescrito apenas quando:
D. é acessível.
2.
Em alguns casos, existe a necessidade de herdar habilidades em Java, porém é necessário
garantir a possibilidade e personalizá-las. A herança deve considerar a mudança de
comportamento entre as classes.
Nesse contexto, ao sobrescrever um método adotado pela linguagem de programação Java
e outras orientadas a objeto, é necessário considerar que o ato praticado será:
A. substituir a implementação do método da superclasse.
3.
Métodos representam uma parte essencial na POO, utilizados para que seja possível
consultar e alterar atributos elencados aos objetos.
Sobre as características de um método na sobrescrita, é correto afirmar que:
C. um método declarado como protected na superclassepode ser declarado public
na subclasse.
4. Em Java, implementar classes é possível por meio de palavras-chaves. Para definir
classes públicas, é necessário declarar a classe por meio do comando public class; já para
modificar o acesso do método utiliza-se public void.
Considerando as informações repassadas, analise o código a seguir:
public class Animal{
public void locomover(){
System.out.println("Se locomove");
}
}
public class Peixe extendas Animal {
public void locomover(){
System.out.println("Nada");
}
}
Ao analisar o código, está correto afirmar que:
D. ao instanciar a classe Peixe e, por meio de uma variável de referência, chamar o
método locomover(), a saída que se tem é: Nada.
5. A sobrescrita utiliza um conjunto de modificadores para definir o conceito de herança.
Em relação à herança e à sobrescrita, é correto afirmar que:
E. uma invocação externa do método da subclasse, acessível fora de sua classe,
resulta na invocação da implementação da superclasse.
Unidade 8
1. Para representar objetos projetados do mundo real para a programação, diferentes
elementos são necessários. Ao implementar um código em Java, as classes são utilizadas
para declarar atributos e métodos. Um tipo de classe muito comum na linguagem é a classe
abstrata.
Marque a alternativa que melhor define as classes abstratas.
A. Classes abstratas auxiliam quando algum comportamento é definido para a
maioria ou para todos os objetos de dado tipo.
2. Em classes abstratas, temos um padrão de acordo com o qual uma área de
conhecimento particular de uma classe exige que outra pessoa providencie uma parte que
está faltando.
Além de ser conhecido como Template-Method, também podemos nos referir ao recurso
como:
E. método gabarito.
3. De forma genérica, um método em Java pode definir uma função, sub-rotina ou
procedimento. Em algumas linguagens, mas não em Java, existe o conceito de métodos
globais. Em Java, todos os métodos precisam ser definidos dentro de uma classe, como os
métodos abstratos.
Sobre os métodos abstratos, é correto afirmar que:
B. são métodos sem implementação.
4. Alguns conceitos podem parecer semelhantes em Java como classes abstratas e
interfaces ou quando classes abstratas e métodos abstratos são comparados. O método
abstrato define a assinatura e não contém código diferente daquele que ocorre nas
interfaces. A classe abstrata define atributos e métodos implementados, definindo o acesso
às subclasses.
Em relação aos conceitos de classe e métodos abstratos, assinale a alternativa correta.
E. Classes abstratas fornecem a implementação de um ou mais métodos.
5. Com base na programação de objetos em Java, podemos vincular muitos conceitos do
mundo real com o mundo da programação. O mesmo ocorre com o conceito de herança,
em que as classes refletem o comportamento de outras. Nesse processo, temos os
conceitos de superclasse e subclasse.
Em relação à herança em orientação a objetos, assinale a alternativa correta.
D. Quando uma subclasse herda um método abstrato da superclasse, este não deve
ser implementado.
Unidade 9
1. Todos os componentes têm um papel importante na linguagem de programação orientada
a objetos. Porém, um deles é considerado unidade fundamental de uma estrutura de
código.
Considerando o conceito apresentado, assinale a alternativa que contém o recurso que
representa tal unidade.
E. Classes.
2. Diferentemente de uma classe, uma interface em Java não suporta qualquer tipo de
código, ao passo que uma classe abstrata pode prover um código completo ou ter apenas a
declaração de um modelo a ser sobrescrito.
Assinale a alternativa que apresenta a definição de interface.
B. Interface define tipos em forma abstrata.
3. Em uma estrutura de herança, uma classe usa membros de outra classe. Interfaces
fornecem membros para que outras classes possam fazer uso deles. Ao implementar
heranças e interfaces, algumas diferenças precisam ser notadas.
Sobre a herança, assinale a alternativa correta.
A. Herança é uma estrutura que tem uma superclasse e subclasses que herdam
membros dessa superclasse.
4. Ao criar uma interface com o nome Contrato e com o método sem retorno chamado
entrarComTexto(), é necessário definir alguns componentes.
A forma correta de criar a interface em Java é:
D. public interface Contrato{ void entrarComTexto(String texto); }
5. Uma classe que implementa uma interface assume a responsabilidade de executar as
ações que a interface define. A é a classe e B é a interface.
Dessa forma, para obter as assinaturas dos métodos da interface em uma classe, analise
os códigos a seguir e identifique a forma correta de implementação.
D. public class A implements B { }
Unidade 10
1. O polimorfismo é um dos quatro pilares da programação de orientação a objetos,
aplicado com o objetivo de manter um código limpo e organizado. Além disso, permite o
compartilhamento de comportamentos e substituições de acordo com a necessidade do
código.
Qual é a melhor forma de aplicação do polimorfismo?
C. Quando cada classe implementa o mesmo método de diferentes maneiras.
2. Para entendermos melhor e trabalharmos com polimorfismo, é de extrema importância
sabermos alguns conceitos, como as "interfaces", pois, assim como em qualquer linguagem
de programação, em Java os métodos, processos e objetos trabalham em conjunto.
Sobre as interfaces na programação orientada a objetos, é correto afirmar que:
C. diferentemente de uma classe, um tipo de interface não fornece nenhuma
implementação.
3. O polimorfismo pode ser aplicado a diferentes contextos do mundo real. No entanto, na
programação orientada a objetos e na linguagem Java, sua aplicação é mais específica. A
forma principal do polimorfismo é a herança.
O que é correto afirmar sobre o polimorfismo?
D. Programar no específico é quando o programa determina o tipo de objeto no
momento da execução.
4. O polimorfismo permite que classes abstratas recebam comportamento por meio de
classes concretas.
Selecione a alternativa que representa a relação do polimorfismo com interfaces e
superclasses.
D. Quando uma classe implementa uma interface, ela se obriga a utilizar e
implementar todos os métodos da interface; com isso, temos um comportamento
polimórfico.
5.Em programação orientada a objetos, polimorfismo é o princípio de que duas ou mais
classes derivadas da mesma superclasse podem chamar métodos com a mesma
assinatura, mas têm um comportamento diferente.
Considerando o conceito apresentado, analise o seguinte código:
D. O código 4 está escrito de forma errada, pois, para utilizarmos uma interface,
devemos colocar a palavra-chave "implements", não "extends".
Unidade 11
1. Um dos principais paradigmas de programação determina que os programadores
decidam o melhor caminho e sejam capazes de solucionar problemas de alta complexidade.
Para isso, diferentes métodos, funções e recursos são aplicados ao código. Sobrecarga e
polimorfismo são conceitos úteis na programação orientada a objetos.
Quando ocorre a sobrecarga de métodos?
E. Quando um ou mais métodos têm o mesmo nome, mas conjuntos de parâmetros
diferentes.
2. Na programação orientada a objetos, assinatura é a identificação única de um método. É
comum, ao trabalhar com métodos, utilizar a expressão "assinatura do método".
Marque a alternativa que melhor explica do que se trata essa expressão.
D. A assinatura do método é composta por seu nome e parâmetros.
3. No contexto de programação orientada a objetos, um programador pode definir o que
está sendo implementado, ao analisar o código, identificando de que forma os objetos
trocam mensagens entre si; o mesmo ocorre com a sobreposição e a sobrecarga. Para
saber se um programa em Java apresenta sobrecarga, é preciso analisar o código-fonte.
Analise os códigos a seguir e informe em qual deles existe sobrecarga de métodos.
D. public class Colaborador { String nome; String endereco; public Colaborador(){ }
public Colaborador(String nome){ this.nome = nome; } public Colaborador(String
nome, String endereco){ this.nome = nome; this.endereco= endereco; } }
4. Sobrecarga de método (sobrecarga) é um conceito de polimorfismo, que basicamente
envolve a criação de variantes do mesmo método, ou seja, a criação de dois ou mais
métodos com o mesmo nome em uma classe. Por esse motivo, é possível tratar a
sobrecarga de métodos como um tipo de polimorfismo.
Marque a alternativa que melhor explica o polimorfismo.
C. É quando o mesmo método é utilizado de maneiras diferentes de acordo com a
necessidade de cada classe.
5. Sobrecarga e polimorfismo são muito úteis em Java para facilitar o reúso de código já
criado.
Em relação à sobrecarga e ao polimorfismo, é correto afirmar que:
C. na sobrecarga, o tipo e/ou a quantidade dos parâmetros de cada método
sobrecarregado devem diferir.
Unidade 12
1. Os atributos e métodos finais são úteis em diferentes tipos de sistemas e aplicações, com
uma função específica.
Nesse contexto, assinale a alternativa que descreve corretamente o objetivo do uso da
palavra-chave "final" na API Java.
D. Deixar o membro imutável.
2. Os atributos são as propriedades dos objetos computacionais, representados na API
Java por classes. Em relação aos atributos de uma classe, a palavra-chave "final" é usada
para uma função específica.
Nesse contexto, assinale a alternativa correta.
B. Declarar uma constante.
3. Os métodos são as ações ou funções que um objeto pode realizar. Em relação aos
métodos de uma classe, a palavra-chave "final" é usada para uma função específica.
Nesse contexto, veja as afirmações a seguir:
I. A palavra-chave "final" impede que um método seja sobreposto.
II. A palavra-chave "final" garante que um método seja sobreposto.
III. A palavra-chave "final" impede que um método seja visível para outras classes.
IV. A palavra-chave "final" informa que o método é sem retorno.
V. A palavra-chave "final" impede que um método seja herdado por outras classes.
Está correto o que se afirma em:
A. I e V.
4. Atributos e métodos finais podem ser utilizados em muitos tipos de aplicativos, seja
naqueles que executam cálculos, que definem áreas de objetos gráficos ou que armazenam
informações privadas.
Nesse sentido, observe os trechos de códigos-fonte que utilizam a palavra-chave "final" e os
relacione com suas respectivas descrições:
I. private final int num = 2;
II. private final int num1 = 6;
private final int num2 = 4;
private int result;
public final void(){ result = num1 + num2; }
III. static private final double pi = 3.1416;
private double raio = 2;
private double area;
public void setRaio(){ this.raio = raio;
area = pi * (raio*raio);
( ) Calcula a área do círculo cujo raio é 2.
( ) Calcula a soma entre num1 e num2.
( ) Declara uma constante com modificador de acesso privado recebendo um valor 2.
Agora, assinale a alternativa em que é apresentada a ordem correta.
C. III, II, I.
5.O uso da palavra-chave "final" no desenvolvimento de um código-fonte deve obedecer à
sintaxe da linguagem de programação utilizada. Há locais específicos na estrutura do
código em que a palavra "final" deve ser inserida para que seja especificada para atributos,
métodos ou para a classe do objeto.
Nesse contexto, analise o código-fonte a seguir:
Agora, veja as afirmações a seguir sobre o código apresentado:
I. A classe Pessoa tem um método final.
II. Os atributos da classe Pessoa foram declarados como constantes.
III. A classe Homem está herdando os membros da classe Pessoa.
IV. Se instanciarmos a classe Pessoa, chamarmos o método calculaIdade e passarmos os
valores referentes a ano de nascimento e ano atual por parâmetros no método, teremos
como resultado a idade.
V. Se instanciarmos a classe Homem, chamarmos o método calculaIdade e passarmos os
valores referentes a ano de nascimento e ano atual por parâmetros no método, teremos
como resultado a idade.
Está correto o que se afirma em:
E. I, III e IV.
Unidade 13
1. O uso de classes aninhadas contribui para o desenvolvimento de software em vários
aspectos. Sobre o conceito de classes aninhadas, veja as afirmações a seguir:
I. Classes aninhadas são declaradas dentro de um mesmo projeto.
II. Classes aninhadas são declaradas dentro de outras classes.
III. Classes aninhadas são declaradas com a palavra-chave abstract.
IV. Classes aninhadas dependem da existência de outra classe para serem declaradas.
Está correto o que se afirma em:
A. II e IV.
2. As classes aninhadas são úteis em diferentes tipos de sistemas e aplicações e têm
características específicas. Sobre o conceito e as características de classes externas, veja
as afirmações a seguir:
I. Classes externas são classes declaradas com o modificador de acesso public.
II. Classes aninhadas classificadas como protected são protegidas.
III. Classes externas são classes que contêm classes aninhadas.
IV. Classes externas são todas aquelas que têm membros como atributos e métodos.
C. II e III.
3. As classes aninhadas podem ser divididas em dois tipos principais que apresentam
características diferentes. Nesse sentido, observe os tipos de classes aninhadas a seguir e
os relacione com suas respectivas características:
I. Classes aninhadas internas
II. Classes aninhadas estáticas
( ) Têm acesso aos membros privados não estáticos da classe externa.
( ) Chamam as variáveis de instância de sua classe externa com uma referência de objeto.
( ) Membros estáticos podem ser declarados dentro delas.
( ) Referem-se diretamente às variáveis de instância definidas em sua classe externa.
Assinale a alternativa em que é apresentada a ordem correta.
D. I, II, II, I.
4. A aplicação de classes aninhadas em um código-fonte depende da utilização de uma
sintaxe de código específica, a fim de garantir sua funcionalidade. Nesse sentido, observe o
código-fonte a seguir:
Agora, veja as afirmações a seguir sobre o código apresentado:
I. A classe Permissions é declarada dentro da classe BankAccount.
II. A classe Permissions é um membro da classe BankAccount.
III. Se a classe BankAccount estivesse dentro do pacote banco, o nome completo da classe
seria BankAccount.Permissions.
IV. A classe Permissions é proibida de acessar os membros de BankAccount.
Está correto o que se afirma em:
E. I e II.
5. Existem algumas maneiras de instanciar uma classe aninhada não estática. Considere
uma classe externa chamada A e uma classe aninhada chamada B.
Qual alternativa tem o código correto para essa situação?
D. A.B variavel = new A().new B();
Unidade 14
1. Os tipos genéricos também têm diversas vantagens, como o aumento da estabilidade dos
tipos durante a compilação da aplicação. Sobre os tipos genéricos, veja as afirmações a
seguir:
I. O tópico genérico é extenso.
II. Genéricos são tipos primitivos de dados.
III. Ao declarar um atributo como String, declara-se que ele é um genérico.
IV. Ao usar tipos genéricos, é possível definir um algoritmo uma única vez.
V. Com genéricos, o código pode ser reutilizado.
Está correto o que se afirma em:
C. I, IV e V.
2. Os tipos genéricos são úteis em diferentes tipos de sistemas e aplicações, com uma
função específica.
Nesse contexto, assinale a alternativa que descreve a que se refere o termo “genéricos” no
conceito dos tipos genéricos:
E. Tipos de dados parametrizados.
3. A aplicação de tipos genéricos em um código-fonte depende da utilização de uma sintaxe
de código específica. Nesse sentido, observe os modelos de trechos de códigos-fonte a
seguir e os relacione com suas respectivas descrições:
I. class NomeDaClasse{ //implementação. }
II. class abstract NomeDaClasse{ //implementação.
III. class NomeDaClasse extends Generica{ //implementação. }
IV. class NomeDaClasse implements Generica{ //implementação. }
V. class NomeDaClasse <Parâmetro de tipo>{ //implementação. }
( ) Declara um parâmetro de tipo genérico para a classe.
( ) Declara uma classe abstrata.
( ) Informa que a classe está implementando uma interface com o nome “Generica”.
( ) Sintaxe básica de declaração de classes.
( ) Informa que a classe é uma extensão da classe como nome “Generica”.
Assinale a alternativa que apresenta a ordem correta.
E. V, II, IV, I, III.
4. A sintaxe de um código-fonte é muito importante para que a aplicação seja implementada
e executada da maneira correta com todos os seus recursos, inclusive os tipos genéricos
que forem definidos.
Nesse sentido, observe o código-fonte a seguir:
Analise as afirmações a seguir sobre o código apresentado:
I. Na linha 1, a letra “T” representa o nome de um parâmetro de tipo.
II. O código da linha 2 provocará um erro de compilação pela falta de um tipo válido para o
atributo “ob”.
III. Nas linhas 10, 11 e 12, tem-se o método “getob()”, que retorna um tipo “T”.
IV. Na linha 28, é criada uma versão de “Gen” para inteiros e atribuída uma referência a
“iOb” a uma instância da classe “Generica”.
Está correto o que se afirma em:
B. I e III.
5. A utilização de tipos genéricos na API Java depende de algumas características
específicas, que envolvem as classes e seus parâmetros.
Nesse contexto, veja as afirmações a seguir:
I. Genéricos funcionam com qualquer tipo de dados.
II. Tipos genéricos diferem de acordo com seus argumentos de tipo.
III. Classes genéricas podem ser declaradas com mais de um parâmetro.
IV. É recomendável que os nomes de parâmetros de tipos tenham exclusivamente uma
letra.
V. As letras a serem utilizadas como nomes de parâmetros de tipos devem ser “T”, “E” ou
“V”.
Está correto o que se afirma em:
E. II, III e IV.
Unidade 15
1. Com relação ao tratamento de exceções, marque a alternativa incorreta.
B. Erros de tempo de execução não podem ser tratados.
2. O tratamento de exceções em java é gerenciado por cinco palavras-chave. Marque a
alternativa correta.
A. Try, catch, throw, throws e finally.
3. Analise o código a seguir e marque a alternativa incorreta.
try {
//bloco de código cujos erros estão sendo monitorados
}
catch(TipoExceç1 obEx){
//tratador de TipoExceç1
}
catch(TipoExceç2 obEx){
//tratador de TipoExceç2
}
E. Caso uma exceção fosse lançada, ela seria capturada pela instrução try.
4. Quais são as consequências de uma exceção não capturada?
D. O programa não terminará de forma normal.
5. Marque a alternativa incorreta.
E. Caso tenhamos um try dentro de outro, o interno não necessita ter uma instrução
catch associada.
Unidade 16
1. O uso de padrões de projetos na construção de software tem vantagens relacionadas ao
tempo e à lógica de programação.
Sobre as características dos padrões de projeto orientados a objetos, veja as afirmações a
seguir:
I. Projetar software reutilizável orientado a objetos é uma tarefa complexa.
II. Bons projetistas sabem que devem resolver problemas de software a partir do zero.
III. Projetistas, quando encontram uma solução, reutilizam-na várias vezes.
IV. Padrões de projeto conseguem resolver problemas específicos e complexos.
Está correto o que se afirma em:
E. III e IV.
2.
Em geral, um padrão tem quatro elementos essenciais. Nesse sentido, observe os
elementos essenciais a seguir e os relacione com suas respectivas descrições:
I. Nome padrão
II. Problema
III. Solução
IV. Consequência
( ) Elementos que compõem o padrão de projetos, seus relacionamentos, suas
responsabilidades e colaborações.
( ) Referência utilizada para descrever um problema de projeto que torna mais fácil
comunicar projetos.
( ) Em que situação aplicar o padrão; pode incluir uma lista de condições a serem satisfeitas
para que sua aplicação faça sentido.
( ) Resultado da análise das vantagens e desvantagens da aplicação do padrão; é
importante para compreender benefícios da aplicação do padrão.
Assinale a alternativa em que é apresentada a ordem correta:
C. III, I, II, IV.
3. O catálogo de padrões de projetos escrito pelo GOF tem 23 padrões. Os padrões de
projeto variam na sua granularidade e no seu nível de abstração. Como existem muitos
padrões, eles foram organizados. Com isso, os padrões de projeto foram classificados por
dois critérios: o primeiro chama-se finalidade e o segundo, escopo. Referente ao critério de
finalidade, observe as afirmações a seguir e as relacione com suas respectivas descrições:
I. Criação
II. Estrutural
III. Comportamental
( ) Preocupa-se com o processo de desenvolvimento de novos objetos e classes, com sua
instanciação.
( ) Preocupa-se em concretizar as maneiras como classes ou objetos interagem e
distribuem responsabilidades.
( ) Preocupa-se com o processo de composição de classes e objetos, aumentando sua
funcionalidade.
Assinale a alternativa em que é apresentada a ordem correta:
C. I, III, II.
4. Os padrões de projetos são úteis em diferentes tipos de sistemas e aplicações, sendo
classificados de acordo com sua função na resolução de problemas previamente descritos.
Nesse contexto, assinale a alternativa que descreve o padrão Strategy.
D. Define uma família de algoritmos, encapsula cada um deles e torna-os
intercambiáveis.
5. A utilização de padrões de projetos orientados a objeto depende de algumas
características específicas que envolvem as classes e seus parâmetros. Nesse contexto,
analise as afirmações a seguir:
I. O critério "escopo" especifica se o padrão se aplica primeiramente a classes ou a objetos.
II. O padrão para classes lida com os relacionamentos entre classes e suas subclasses.
III. Alguns padrões são frequentemente usados em conjuntos.
IV. O padrão Builder tem propósito estrutural.
V. O padrão Visotor tem finalidade de criação.
Está correto o que se afirma em:
E. I, II e III.