Prévia do material em texto
Questão 1 : Observe os trechos de códigos abaixo e marque a alternativa incorreta.
A resposta correta é a opção C
Justificativa:Os modificadores abstract e final não combinan no mesmo método.
A
vprivate final int num=2;
B
public final void imprime(){ System.out.println("Imprime texto"); }
C
public abstract final void som();
D
private final int num1=6; private final int num2=4; private int result; public final void(){ result=num1 + num2; }
E
static private final double pi=3.1416; private double raio=2; private double area; public void setRaio(){ this.raio = raio; area=pi * (raio*raio); }
Questão 2 : Marque a alternativa correta.
A resposta correta é a opção A
Justificativa:A variável de classe ou estática fica disponível para toda classe, com isso, todos os objetos da classe compartilham os mesmos dados.
A
Uma variável estática representa informações em nível de classe.
B
Uma variável estática não muda seu valor.
C
Usamos variáveis de classe quando apenas um objeto da classe precisa utilizar uma cópia desta variável.
D
Todo objeto tem sua própria cópia de todas as variáveis estáticas da classe.
E
Se vários objetos precisam acessar uma determinada variável em comum, a medida que transformamos esta variável em estática, estamos desperdiçando espaço na memória.
Questão 3 : Quais são as consequências de uma exceção não capturada?
A resposta correta é a opção D
Justificativa:Capturar exceção é importante, pois impede que o programa termine de forma anormal.
A
O programa apenas ignora a instrução catch.
B
O programa terminará normalmente.
C
Não teremos problemas caso o programa passe uma mensagem através de um método print para o usuário.
D
O programa não terminará de forma normal.
E
Não teremos necessidade de usar o try-catch.
Questão 4 : Utilizando ainda o exemplo do exercício anterior, caso existisse a necessidade de inserir um atributo para armazenar o valor do limite de gastos diários, que seria único por CartaoCredito, lembrando que a classe MeioPagamento também tem como herdeira a classe CartaoDebito, assinale a alternativa correta sobre essa implementação:
A resposta correta é a opção C
Justificativa:O atributo seria criado somente na classe MeioPagamento. Apesar do limiteGastosDiario ser único por CartaoCredito, isso se refere ao valor do atributo limiteGastosDiario, então não existe relação com o atributo não ser possível de ser herdado. Além do mais, CartaoCredito é um tipo de MeioPagamento e atributos comuns a MeioPagamento devem ficar na classe mãe. Os métodos get e set seriam criados na classe MeioPagamento, mas o atributo limiteGastosDiario também e não um em cada classe. Não existiria necessidade de criar um atributo em cada classe, mesmo que CartaoDebito e CartaoCredito possuam limiteGastosDiario diferentes.
A
O atributo limiteGastosDiario seria criado somente na classe CartaoCredito.
B
O atributo limiteGastosDiario seria criado na classe CartaoCredito e MeioPagamento.
C
O atributo limiteGastosDiario seria criado somente na classe MeioPagamento
D
O atributo limiteGastosDiario seria criado na classe MeioPagamento, CartaoCredito e CartaoDebito.
E
O atributo limiteGastosDiario seria criado na classe MeioPagamento e CartaoCredito, mas os métodos get e set somente na MeioPagamento.
Questão 5 : 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 primeiro critério, os padrões podem ter a finalidade de criação, estrutural ou comportamental. Marque a finalidade que lida com a composição de classes e objetos.
A resposta correta é a opção C
Justificativa:Lida com a composição de classes e objetos.
A
Criação.
B
Escopo.
C
Estrutural.
D
Comportamental.
E
Nenhuma das finalidades citadas.
Questão 6 : Analise o seguinte código:
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; } }
A resposta correta é a opção B
Justificativa:Para diferenciarmos, na implementação do método, qual variável é de instância, necessitamos colocar a palavra this com um ponto, na frente do nome da variável.
A
A classe Veiculo tem quatro variáveis de instância.
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.
C
A palavra void é necessária para criação de todos os métodos.
D
As variáveis de instância da classe veículo poderão ser visualizadas por qualquer outra classe da aplicação.
E
O código está incorreto, pois métodos e variáveis de instância não são elementos de uma classe.
Questão 7 : Qual o objetivo de usarmos a palavra-chave final em membros de uma classe?
A resposta correta é a opção D
Justificativa:O uso do final serve para darmos imutabilidade.
A
Encapsulamento.
B
Dar visibilidade pública aos membros da classe.
C
Para deixarmos os membros visíveis em sua classe e subclasses.
D
Para deixar o membro imutável.
E
A palavra-chave final é utilizada apenas em classe.
Questão 8 : Quando identificamos a possibilidade de usar herança em nosso projeto?
A resposta correta é a opção D
Justificativa:Esta realmente é uma boa forma de identificar a possibilidade de criar uma estrutura de herança em nossos projetos.
A
Quando temos a necessidade de reduzir código.
B
Quando existe relação entre classes.
C
Quando necessitamos aumentar a produtividade no desenvolvimento.
D
Quando temos uma relação e um ou vários atributos em comum entre duas ou mais classes.
E
Quando classes possuem muitos atributos.
Questão 9 : Nos fundamentos dos tipos genéricos, quando utilizamos o termo “genérico”, estamos nos referindo a:
A resposta correta é a opção E
Justificativa:Quando usamos o termo genérico, queremos nos referir a tipos parametrizados.
A
Estrutura de herança.
B
Um tipo primitivo de dados que pode receber qualquer valor.
C
Quando uma aplicação pode ser executada sem o método main em java.
D
Usamos variáveis de referência ao instanciarmos uma classe.
E
Quando nos referimos a tipos parametrizados.
Questão 10 : O que significa sobrescrever um método?
A resposta correta é a opção A
Justificativa:Sobrescrever um método significa substituir a implementação da superclasse daquele método com sua própria.
A
Substituir a implementação do método da superclasse.
B
Escrever um método herdado com mesmo tipo de retorno, mas com nome diferente.
C
As assinaturas devem ser diferentes. Todavia, a implementação deve ser igual.
D
As assinaturas e implementações devem ser diferentes daquela na superclasse.
E
Escrever o método com mesmo nome modificando apenas seus parâmetros.