Buscar

Programação Orientada a Objetos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 101 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 101 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 101 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Questão 1 : Um dos principais conceitos da orientação a objetos é o encapsulamento de dados. O encapsulamento em Java é realizado por meio de modificadores de acesso. 
 
Assinale a alternativa que apresenta o modificador que, em uma herança, permite somente as classes filhas de acessar um atributo ​​​​​​​da classe pai.
Resposta Errada! A resposta correta é a opção B 
Justificativa: O modificador protected permite que qualquer classe herdeira acesse os atributos da classe pai. O modificador public permite que qualquer classe tenha acesso aos atributos. O modificador default permite que apenas as classes no mesmo pacote acessem os atributos. O modificador private impede que qualquer classe tenha acesso ao atributo. Extends não é um modificador de acesso.
	A
	
	Modificador private. 
	B
	
	Modificador protected. 
	C
	
	Modificador public. 
	D
	
	Modificador default. 
	E
	
	Modificador extends. 
Questão 2 : Em relação aos atributos de uma classe, podemos afirmar que a palavra-chave final é usada para:
Resposta Errada! A resposta correta é a opção B 
Justificativa: Uma constante é um atributo imutável, isto é, recebe um valor que não será modificado na aplicação. Com isso, faz-se necessário o uso da palavra final na declaração deste atributo.
	A
	
	Declarar variáveis. 
	B
	
	Declarar uma constante. 
	C
	
	Para declararmos atributos estáticos. 
	D
	
	Para declararmos atributos que receberam valor de ponto flutuante. 
	E
	
	Para não declararmos dois ou mais atributos com o mesmo nome. 
Questão 3 : Marque a afirmativa correta.
Resposta Errada! A resposta correta é a opção C 
Justificativa: Métodos estáticos acessam apenas membros estáticos da classe.
	A
	
	As variáveis e os métodos de classe estáticos existem apenas quando um objeto dessa classe tenha sido instanciado. 
	B
	
	A referência this pode ser usada em métodos estáticos. 
	C
	
	Se um método estático tentar acessar um outro método não estático da classe usando somente o nome do método, ocorrerá um erro de compilação. 
	D
	
	Para fazermos a chamada de um método estático, é necessário apenas colocar o nome do método seguido de parênteses. 
	E
	
	Métodos e variáveis estáticas são associados a um objeto. 
Questão 4 : Mesmo que as classes abstratas sejam parecidas com as interfaces, ambas têm particularidades que as tornam únicas. Logo, marque a resposta que melhor representa cada uma delas.
Resposta Errada! A resposta correta é a opção D 
Justificativa: A principal diferença entre elas é que os métodos de uma interface Java são implicitamente abstratos e não podem ter implementações. Uma classe abstrata Java pode ter métodos de instância que implementam um comportamento padrão. Enquanto as interfaces têm métodos públicos, as classes abstratas têm métodos abstratos e concretos. As interfaces determinam contratos (também chamados de assinaturas), enquanto as classes compartilham comportamentos.
	A
	
	Interfaces podem ter apenas métodos abstratos públicos; as classes abstratas não podem conter campos de dados. 
	B
	
	Na classe abstrata, a palavra-chave abstract é opcional para declarar um método. Enquanto na interface, a palavra-chave abstract é obrigatória para declarar um método como um resumo. 
	C
	
	Tanto as interfaces como as classes abstratas podem conter métodos concretos. 
	D
	
	Interface é utilizada quando implementações compartilham apenas a assinatura do método; classe abstrata é usada quando várias implementações do mesmo tipo compartilham um comportamento comum. 
	E
	
	Interface é utilizada quando várias implementações do mesmo tipo compartilham um comportamento comum; classe abstrata é usada quando implementações compartilham apenas a assinatura do método. 
Questão 5 : Em relação aos métodos estáticos ou de classes, marque a afirmativa correta.
Resposta Errada! A resposta correta é a opção E 
Justificativa: A palavra-chave static é colocada antes do tipo de retorno do método. Exemplo: public static void main(String [] args){...}
	A
	
	Métodos são variáveis que tem a capacidade de receber uma quantidade maior de informação. 
	B
	
	Métodos estáticos não são membros de classes. 
	C
	
	Métodos estáticos servem apenas para operações de inserção de dados. 
	D
	
	Por serem estáticos, os métodos não podem ser chamados em outras classes. 
	E
	
	Métodos estáticos são declarados colocando-se a palavra-chave static antes do tipo de retorno. 
Questão 6 : A sobreescrita de métodos é um dos pilares da programação orientada a objetos. Além de herdar os atributos e os métodos da superclasse, a classe herdeira pode adaptar os métodos herdados. 
 
​​​​​Analise o código Java a seguir:
public class Funcionario {
protected String nome;
protected String cpf;
protected double salario; public double getBonificacao() { return this.salario * 0.10; }
public void setSalario(double salario){ this.salario = salario; }
}
public class Gerente extends Funcionario {
int senha;
public double getBonificacao() { return this.salario * 0.15; } 
}
 
Assinale a alternativa que indica o resultado da operação. Gerente gerente = new Gerente(); 
 
gerente.setSalario(4000.0);
 
System.out.println(gerente.getBonificacao());
Acertou! A resposta correta é a opção A 
Justificativa: O resultado será 600.0, pois o método getBonificacao é sobrescrito na classe gerente. Essa sobrescrita de métodos chama-se polimorfismo.
	A
	
	O resultado será 600.0, pois o método getBonificacao é sobrescrito na classe gerente. 
	B
	
	O resultado será 400.0, pois a classe gerente herda da classe funcionário e será executado o método da superclasse. 
	C
	
	O resultado será 1000.0, pois serão executados os métodos da classe gerente e funcionário. 
	D
	
	O resultado será um erro de execução, pois a classe gerente não tem um atributo salário para o cálculo. 
	E
	
	O resultado será 400.0, pois a classe gerente sobrecarrega a classe funcionário e será executado o método da superclasse. 
Questão 7 : Analise o código abaixo e marque a alternativa correta.
  
 
 
Resposta Errada! A resposta correta é a opção D 
Justificativa: Para implementarmos uma interface, devemos colocar a palavra-chave interfaces antes do nome da interface. E para utilizarmos uma interface devemos colocar a palavra-chave implements, não extends. Assim, o código 4 deveria trazer a palavra-chave extends.
	A
	
	O código 1 refere-se à criação de uma classe abstrata. 
	B
	
	O código 2 está incorreto, pois o método locomover pertence à interface "InterfaceTeste". Quando a classe "Formiga" implementou a interface, a mesma alterou a implementação do método. 
	C
	
	O código 3 está escrito de forma correta. 
	D
	
	O código 4 está escrito de forma errada, pois, para utilizarmos uma interface, devemos colocar a palavra-chave implements, não extends. 
	E
	
	Sendo o código 1 a interface, podemos concluir que nos códigos 2, 3 e 4, temos um comportamento polimórfico. 
Questão 8 : Existem duas formas de implementação de polimorfismo. Uma se dá quando se tem a mesma operação implementada várias vezes na mesma classe e a outra acontece na herança, quando a classe herdeira altera o método original. Assinale a alternativa correta quanto ao nome desses tipos de implementação de polimorfismo:
Acertou! A resposta correta é a opção A 
Justificativa: O tipo de polimorfismo onde um método é implementado várias vezes é chamado de polimorfismo estático ou Sobrecarga e o que altera o método original é chamado de polimorfismo dinâmico ou Sobreposição. Portanto Estático e Sobrecarga são a mesma coisa, assim como Dinâmico e Sobreposição. Já Alternativo não é um tipo de implementação de Polimorfismo.
	A
	
	Sobrecarga e Sobreposição. 
	B
	
	Estático e Sobrecarga. 
	C
	
	Dinâmico e Sobreposição. 
	D
	
	Alternativo e Sobrecarga. 
	E
	
	Alternativo e Sobreposição. 
Questão 9 : Nos fundamentos dos tipos genéricos, quando utilizamos o termo “genérico”, estamos nos referindo a:
Resposta Errada! 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 método construtor de uma classe Java é um método especial, que tem o mesmo nome da classe e é executado quando a classe é instanciada. Em Java, é possível realizar sobrecarga de construtor. 
 
Assinale a alternativa que apresenta a definição correta de sobrecarga de construtor.
Resposta Errada! A resposta correta é a opção B 
Justificativa: Sobrecarregar um método significa prover mais de uma versão de um mesmo método. As versões devem, necessariamente, ter listas de parâmetros diferentes, seja no tipo, seja no número desses parâmetros. 
 
Em relação de herança, a classe filha herda o construtor da classe pai. A função do construtor em uma classe não é encapsular os atributos e sim criar uma instância da classe. É possível criar mais de um construtor em qualquer classe.
	A
	
	É possível criar vários métodos construtores, todos com os mesmos parâmetros.​​​​​​​ 
	B
	
	É possível criar vários métodos construtores, todos com parâmetros diferentes.​​​​​​​ 
	C
	
	É possível criar somente um método construtor e estender esse método por meio de herança.​​​​​​​ 
	D
	
	É possível criar vários métodos construtores encapsulando os atributos no método. 
	E
	
	É possível criar vários métodos construtores somente em superclasses. 
Questão 1 : Uma classe que implementa uma interface assume a responsabilidade de executar as ações que a interface define. Dessa forma, para podermos obter as assinaturas dos métodos da interface em uma classe, considere os códigos abaixo e marque a afirmativa correta. A é nossa classe e B é nossa interface.
Resposta Errada! A resposta correta é a opção D 
Justificativa: Esse código está correto, pois, além de criarmos a classe A, estamos implementando a interface B através da palavra-chave implements.
	A
	
	public class A extends B{ } 
	B
	
	public implements A class B { } 
	C
	
	public class A extends C implements B { } 
	D
	
	public class A implements B { } 
	E
	
	public interface B { } 
Questão 2 : Em relação à herança e sobrescrita, marque a alternativa incorreta.
Resposta Errada! A resposta correta é a opção E 
Justificativa: Uma invocação externa do método da subclasse (assumindo que ele é acessível fora de sua classe) resulta na invocação da implementação da subclasse.
	A
	
	Sobrescrita de métodos permite a você estender código existente. 
	B
	
	Um método pode ser sobrescrito somente se ele é acessível. 
	C
	
	O método da subclasse não sobrescreve o método private da superclasse. 
	D
	
	Invocações de métodos private sempre invocam a implementação do método declarado na classe atual. 
	E
	
	Uma invocação externa do método da subclasse (assumindo que ele é acessível fora de sua class resulta na invocação da implementação da superclasse. 
Questão 3 : 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 nota{ this.nota1 = nota1; this.nota2 = nota2; media = (nota1 + nota2)/2;
 
}
 
public void cadastrarAluno(int cod, String matricula){ this.cod=cod; this.matricula = matricula;
 
}
 
}
 
*/
É correto afirmar que:
Resposta Errada! A resposta correta é a opção D 
Justificativa: Podemos observar que a classe não está definida para um único conceito, pois a mesma representa o cálculo de média e possui um recurso, o método “cadastrarAluno”, que não está ligado ao conceito da mesma.
	A
	
	A classe “calcularMedia” segue a regra geral para nomes de classes. 
	B
	
	O método “calcularMedia” não irá executar a expressão aritmética. 
	C
	
	Esta classe não está dentro de nenhum pacote. 
	D
	
	Esta classe não apresenta coesão. 
	E
	
	A classe está escrita totalmente correta. 
Questão 4 : Qual o objetivo de usarmos a palavra-chave final em membros de uma classe?
Resposta Errada! 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 5 : Em relação à herança podemos afirmar que:
Resposta Errada! A resposta correta é a opção D 
Justificativa: Também conhecidas como superclasses e subclasses, respectivamente, elas formam a estrutura de herança.
	A
	
	Classes especializadas são aquelas específicas de um determinado domínio. 
	B
	
	Em uma estrutura de herança, todas as classes necessitam possuir o método main(). 
	C
	
	A herança acontece quando, no desenvolvimento, temos a possibilidade de reuso de componentes. 
	D
	
	Em herança possuímos classes genéricas e especializadas. 
	E
	
	Métodos não podem ser herdados por subclasses. 
Questão 6 : A orientação a objetos trouxe alguns conceitos interessantes para a programação, e um deles está relacionado ao conhecimento sobre a implementação interna da classe, o qual é desnecessário do ponto de vista do objeto. Assinale a alternativa correta quanto ao seu nome:
Acertou! A resposta correta é a opção B 
Justificativa: O encapsulamento é a técnica que permite que o conhecimento sobre a implementação interna de uma classe seja desnecessário quanto ao objeto que a instancia. Já o relacionamento não é um conceito-base da orientação a objetos. Ainda, as classes são estruturas e a abstração, embora seja um dos conceitos novos, diz respeito a entender o conceito de objetos, enquanto que a herança refere-se a herdar estruturas de uma classe para outra.
	A
	
	Relacionamentos. 
	B
	
	Encapsulamento. 
	C
	
	Classes. 
	D
	
	Abstração. 
	E
	
	Herança. 
Questão 7 : Em uma estrutura de herança, uma classe usa membros de outra classe. Interfaces fornecem membros para que outras classes possam fazer uso deles. Com isso, é importante conhecermos o conceito de herança para podermos analisar suas diferenças com implementação de interfaces. Marque a alternativa que melhor define herança.
Resposta Errada! A resposta correta é a opção A 
Justificativa: Herança dá a possibilidade de classes aumentarem suas funcionalidades, herdando membros de uma superclasse.
	A
	
	Herança é uma estrutura que possui uma superclasse e subclasses que herdam membros desta superclasse. 
	B
	
	Em uma estrutura de herança, as subclasses herdam apenas métodos da superclasse. 
	C
	
	Ao herdar um método da superclasse, ele não poderá ser sobrescrito pela superclasse. 
	D
	
	Uma superclasse não pode ser instanciada. 
	E
	
	Para criarmos uma estrutura de herança, devemos limitar a duas o número de subclasses. 
Questão 8 : Em geral, um padrão tem quatro elementos essenciais. Marque a alternativa que descreve de forma incorreta o elemento.
Resposta Errada! A resposta correta é a opção C 
Justificativa: Neste caso, estamos nos referindo a uma descrição de condições para o problema.
	A
	
	O nome do padrão é a referência que podemos utilizar para descrever um problema de projeto. 
	B
	
	O problema descreve em que situação aplicar o padrão. 
	C
	
	A solução do problema incluirá uma lista de condições que devem ser satisfeitas para que faça sentido aplicar padrão. 
	D
	
	As consequências são o resultado da análise das vantagens e desvantagens (trade-offs) da aplicação do padrão. 
	E
	
	A solução descreve os elementos que compõem o padrão de projetos, seus relacionamentos, suas responsabilidades e colaborações. 
Questão 9 : Marque a alternativa correta.
Resposta Errada! 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çõesem 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 10 : Com relação ao tratamento de exceções, marque a alternativa incorreta.
Acertou! A resposta correta é a opção B 
Justificativa: Podemos tratar erros de tempo de execução de maneira estruturada e controlada.
	A
	
	Exceções são erros de execução. 
	B
	
	Erros de tempo de execução não podem ser tratados. 
	C
	
	O tratamento de exceções automatiza grande parte do código de tratamento de erros. 
	D
	
	A linguagem de programação java define exceções-padrão para erros que são comuns nos programas. 
	E
	
	O tratamento de exceções permite que o programa defina um bloco de códigos chamado tratador de exceções. 
Questão 1 : Quais são as consequências de uma exceção não capturada?
Resposta Errada! 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 2 : Em orientação a objetos, como devemos começar as atividades de programação?
Resposta Errada! A resposta correta é a opção D 
Justificativa: O que há de concreto na programação orientada a objetos são os próprios objetos, pois eles possuem estados (atributos com valores) e comportamentos (métodos); identificando os objetos, podemos verificar características semelhantes e classificá-los em classes.
	A
	
	Identificando os atributos. 
	B
	
	Identificando os métodos. 
	C
	
	Identificando os requisitos funcionais da aplicação. 
	D
	
	Identificando objetos e as classes às quais eles pertencem. 
	E
	
	Identificando nomes de classes. 
Questão 3 : Uma das grandes vantagens da adoção da programação orientada a objetos é a reutilização de código e sua organização. Com relação às vantagens da reutilização de código na programação orientada a objetos, assinale a alternativa correta:
Acertou! A resposta correta é a opção C 
Justificativa: A reutilização de código é consequência das etapas de análise e projeto da orientação a objetos, que fazem com que os projetos de código sejam bem projetados e, por influência das classes que agrupam códigos, reutilizados. Em orientação a objetos, as funções são substituídas por métodos, os quais não são, no entanto, os responsáveis pela boa reutilização e pelos procedimentos que não são de linguagens OO, assim como pelos eventos que são da programação estruturada. A simplificação de código é essencial em qualquer paradigma, mas ela, por si só, não é suficiente para a reutilização de código, e sim para a sua otimização.
	A
	
	A reutilização de código é obtida pelo uso de funções nos programas. 
	B
	
	Os códigos em linguagens OO são simplificados pelo uso de procedimentos. 
	C
	
	A reutilização de código é consequência da análise e do projeto de código. 
	D
	
	A reutilização de código é consequência de métodos e eventos. 
	E
	
	A reutilização de código se obtém após a sua simplificação. 
Questão 4 : Em herança entre classes, existe a possibilidade de uma classe herdeira reescrever um método implementado pela classe mãe. Dessa forma, a classe herdeira atribui um comportamento diferenciado ao da classe mãe, sendo o nome desse conceito polimorfismo. Assinale a alternativa correta sobre o polimorfismo:
Resposta Errada! A resposta correta é a opção E 
Justificativa: O polimorfismo é um conceito que se utiliza de herança e consequentemente hierarquia de objetos. O polimorfismo estático, no qual a assinatura dos métodos é alterada, trata de um conceito que surgiu com os demais, assim como herança na orientação a objetos, e pode ser aplicado tanto em casos de herança simples como múltiplas. Não existe limitação quanto à quantidade de métodos da superclasse por uma subclasse, desde que esta herde os métodos da superclasse.
	A
	
	Só é possível aplicar polimorfismo quando os métodos têm a mesma assinatura. 
	B
	
	O polimorfismo é um recurso mais recente que a herança na orientação a objetos. 
	C
	
	Em herança múltipla, não é possível aplicar o conceito de polimorfismo, apenas em herança simples. 
	D
	
	O polimorfismo só permite a alteração de escopo de um método da superclasse pela subclasse. 
	E
	
	O polimorfismo é uma característica em orientação a objetos que usa a hierarquia de objetos. 
Questão 5 : Normalmente, em programação orientada a objetos, utiliza-se o conceito de que uma classe pode receber atributos e métodos de uma classe denominada superclasse. Qual o nome dessa característica?
Acertou! A resposta correta é a opção C 
Justificativa: Sempre que uma classe B se relaciona com outra A, via extensão, a classe B recebe por herança os atributos e os métodos da classe A, com modificadores de acesso public ou protect. Somente os atributos de métodos, denominado privado, não são diretamente herdados.
	A
	
	Característica polimórfica. 
	B
	
	Característica de uma interface. 
	C
	
	Característica de herança. 
	D
	
	Característica de uma implementação. 
	E
	
	Característica de uma abstração. 
Questão 6 : O método construtor de uma classe Java é um método especial, que tem o mesmo nome da classe e é executado quando a classe é instanciada. Em Java, é possível realizar sobrecarga de construtor. 
 
Assinale a alternativa que apresenta a definição correta de sobrecarga de construtor.
Resposta Errada! A resposta correta é a opção B 
Justificativa: Sobrecarregar um método significa prover mais de uma versão de um mesmo método. As versões devem, necessariamente, ter listas de parâmetros diferentes, seja no tipo, seja no número desses parâmetros. 
 
Em relação de herança, a classe filha herda o construtor da classe pai. A função do construtor em uma classe não é encapsular os atributos e sim criar uma instância da classe. É possível criar mais de um construtor em qualquer classe.
	A
	
	É possível criar vários métodos construtores, todos com os mesmos parâmetros.​​​​​​​ 
	B
	
	É possível criar vários métodos construtores, todos com parâmetros diferentes.​​​​​​​ 
	C
	
	É possível criar somente um método construtor e estender esse método por meio de herança.​​​​​​​ 
	D
	
	É possível criar vários métodos construtores encapsulando os atributos no método. 
	E
	
	É possível criar vários métodos construtores somente em superclasses. 
Questão 7 : Para podermos entender melhor e trabalharmos com polimorfismo, é de extrema importância sabermos alguns conceitos, como as Interfaces. Portanto, marque a alternativa que melhor define interfaces em programação orientada a objetos.
Acertou! A resposta correta é a opção C 
Justificativa: Todos os métodos em um tipo de interfaces são abstratos.
	A
	
	São classes que possuem apenas atributos. 
	B
	
	Interfaces são classes que não podem ser instanciadas. 
	C
	
	Diferentemente de uma classe, um tipo de interface não fornece nenhuma implementação. 
	D
	
	Interfaces possuem variáveis de instância e métodos abstratos. 
	E
	
	Interfaces são classes que possuem métodos que não podem ser implementados por outras classes. 
Questão 8 : A sobreescrita de métodos é um dos pilares da programação orientada a objetos. Além de herdar os atributos e os métodos da superclasse, a classe herdeira pode adaptar os métodos herdados. 
 
​​​​​Analise o código Java a seguir:
public class Funcionario {
protected String nome;
protected String cpf;
protected double salario; public double getBonificacao() { return this.salario * 0.10; }
public void setSalario(double salario){this.salario = salario; }
}
public class Gerente extends Funcionario {
int senha;
public double getBonificacao() { return this.salario * 0.15; } 
}
 
Assinale a alternativa que indica o resultado da operação. Gerente gerente = new Gerente(); 
 
gerente.setSalario(4000.0);
 
System.out.println(gerente.getBonificacao());
Resposta Errada! A resposta correta é a opção A 
Justificativa: O resultado será 600.0, pois o método getBonificacao é sobrescrito na classe gerente. Essa sobrescrita de métodos chama-se polimorfismo.
	A
	
	O resultado será 600.0, pois o método getBonificacao é sobrescrito na classe gerente. 
	B
	
	O resultado será 400.0, pois a classe gerente herda da classe funcionário e será executado o método da superclasse. 
	C
	
	O resultado será 1000.0, pois serão executados os métodos da classe gerente e funcionário. 
	D
	
	O resultado será um erro de execução, pois a classe gerente não tem um atributo salário para o cálculo. 
	E
	
	O resultado será 400.0, pois a classe gerente sobrecarrega a classe funcionário e será executado o método da superclasse. 
Questão 9 : Em relação à herança podemos afirmar que:
Resposta Errada! A resposta correta é a opção D 
Justificativa: Também conhecidas como superclasses e subclasses, respectivamente, elas formam a estrutura de herança.
	A
	
	Classes especializadas são aquelas específicas de um determinado domínio. 
	B
	
	Em uma estrutura de herança, todas as classes necessitam possuir o método main(). 
	C
	
	A herança acontece quando, no desenvolvimento, temos a possibilidade de reuso de componentes. 
	D
	
	Em herança possuímos classes genéricas e especializadas. 
	E
	
	Métodos não podem ser herdados por subclasses. 
Questão 10 : 
 
Analise o código e marque a alternativa incorreta. 
 
 
Resposta Errada! A resposta correta é a opção E 
Justificativa: Na classe Homem teremos um erro de compilação, pois o método calculaIdade foi declarado como final na classe Pessoa; com isso, qualquer classe que tente sobrepô-lo não terá sucesso.
	A
	
	A classe pessoa possui um método final. 
	B
	
	Nenhum dos atributos da classe pessoa foram declarados como constantes. 
	C
	
	A classe homem está herdando os membros da classe pessoa. 
	D
	
	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. 
	E
	
	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. 
Questão 1 : O que é um pacote?
Resposta Errada! A resposta correta é a opção E 
Justificativa: Pacotes servem para organizar classes relacionadas.
	A
	
	É uma forma de organizar os métodos. 
	B
	
	É um modificador de acesso. 
	C
	
	Servem para iniciar programas. 
	D
	
	Criamos objetos a partir das definições de um pacote. 
	E
	
	É um conjunto de classes relacionadas. 
Questão 2 : Observe os trechos de códigos abaixo e marque a alternativa incorreta.
Resposta Errada! 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 3 : A declaração de uma variável de classe começa com qual​​​​​​​palavra-chave ?
Resposta Errada! A resposta correta é a opção E 
Justificativa: A declaração de uma variável estática ou de classe começa com a palavra-chave static. Exemplo: static int numero.
	A
	
	public. 
	B
	
	class. 
	C
	
	void. 
	D
	
	private. 
	E
	
	static. 
Questão 4 : Para encapsular um atributo, deixando-o visível apenas para a classe que o contém, utilizamos qual palavra-chave?
Resposta Errada! A resposta correta é a opção E 
Justificativa: Para encapsularmos um atributo, utilizamos a palavra-chave private; com isso, o mesmo ficará visível apenas para classe da qual ele é membro.
	A
	
	Public. 
	B
	
	Static. 
	C
	
	Void. 
	D
	
	Não é necessário informar modificador de acesso. 
	E
	
	Private. 
Questão 5 : Em programação orientada a objetos, qual o papel da classe?
Resposta Errada! A resposta correta é a opção B 
Justificativa: A linguagem orientada a objetos se estruturam a partir das classes.
	A
	
	Classes possuem um papel irrelevante na programação orientada a objetos. 
	B
	
	As classes são a fundação, na qual linguagens orientadas a objetos se estruturam. 
	C
	
	Classes são boas práticas de programação. 
	D
	
	Dentro de uma classe são escritos todos comentários de uma aplicação. 
	E
	
	Uma classe é, basicamente, um conjunto de planos que especifica como construir um pacote. 
Questão 6 : Um dos principais conceitos da orientação a objetos é o encapsulamento de dados. O encapsulamento em Java é realizado por meio de modificadores de acesso. 
 
Assinale a alternativa que apresenta o modificador que, em uma herança, permite somente as classes filhas de acessar um atributo ​​​​​​​da classe pai.
Resposta Errada! A resposta correta é a opção B 
Justificativa: O modificador protected permite que qualquer classe herdeira acesse os atributos da classe pai. O modificador public permite que qualquer classe tenha acesso aos atributos. O modificador default permite que apenas as classes no mesmo pacote acessem os atributos. O modificador private impede que qualquer classe tenha acesso ao atributo. Extends não é um modificador de acesso.
	A
	
	Modificador private. 
	B
	
	Modificador protected. 
	C
	
	Modificador public. 
	D
	
	Modificador default. 
	E
	
	Modificador extends. 
Questão 7 : Para que possamos ter um melhor entendimento do conceito de interfaces, é importante termos um conhecimento sobre a unidade fundamental em linguagem de programação orientado a objeto. Marque a afirmativa que cita esta unidade.
Resposta Errada! A resposta correta é a opção E 
Justificativa: Java é uma linguagem baseada no paradigma orientado a objeto e classes são a unidade fundamental desta linguagem.
	A
	
	Método. 
	B
	
	Atributos. 
	C
	
	Modificadores de acesso. 
	D
	
	Pacote. 
	E
	
	Classes. 
Questão 8 : Marque a alternativa incorreta.
Resposta Errada! A resposta correta é a opção E 
Justificativa: Os padrões com propósito estrutural são: Adapter(class), Adapter(Object), Bridge, Composite, Decorator, Facade, Flyweight, Proxy.
	A
	
	O critério "escopo" especifica se o padrão se aplica primeiramente a classes ou a objetos. 
	B
	
	O padrão para classes lida com os relacionamentos entre classes e suas subclasses. 
	C
	
	Alguns padrões são frequentemente usados em conjuntos. 
	D
	
	Os padrões Factor Method, Abstract Factor, Builder, Prototype e Singleton possuem a finalidade de Criação. 
	E
	
	Os padrões com propósito estrutural são: Adapter(class), Adapter(Object), Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Visotor. 
Questão 9 : Em geral, um padrão tem quatro elementos essenciais. Marque a alternativa que descreve de forma incorreta o elemento.
Resposta Errada! A resposta correta é a opção C 
Justificativa: Neste caso, estamos nos referindo a uma descrição de condições para o problema.
	A
	
	O nome do padrão é a referência que podemos utilizar para descrever um problema de projeto. 
	B
	
	O problema descreve em que situação aplicar o padrão. 
	C
	
	A solução do problema incluirá uma lista de condições que devem ser satisfeitas para que faça sentido aplicar padrão. 
	D
	
	As consequências são o resultado da análise das vantagens e desvantagens (trade-offs) da aplicação do padrão. 
	E
	
	A solução descreve os elementos que compõem o padrão de projetos, seus relacionamentos, suas responsabilidades e colaborações.Questão 10 : Um método abstrato tem apenas a assinatura e sua implementação e é realizado apenas em classes que implementam a classe abstrata ou a interface. Considerando as propriedades das classes abstratas, qual a saída do seguinte programa?
abstract class demo
{
public int a;
demo()
{
   a = 10;
}
abstract public void set(int a);
abstract public void get();
final abstract public void cal(int item);
}
class Test extends demo
{
Test(){}
@Override
public void set(int a)
{
         this.a = a;
}
@Override
public void get()
{
       System.out.println(a = + a);
}
int x;
@Override
public void cal(int item)
{
         x = item * item;
     }
}
class Main
{
public static void main(String args[])
{
Test obj = new Test();
obj.set(20);
obj.x = 0;
obj.cal(2);
System.out.print(obj.x);
      }
}
Resposta Errada! A resposta correta é a opção A 
Justificativa: Um método final não pode ser sobrescrito. Assim, uma função abstrata não pode ser final, pois viola as regras e causa um erro de compilação. Caso a palavra reservada final seja removida, o programa irá compilar e retornará o valor 4.
	A
	
	Erro de compilação. 
	B
	
	2. 
	C
	
	4. 
	D
	
	10. 
	E
	
	20. 
Questão 1 : Analise o código abaixo e marque a alternativa correta.
  
 
 
Resposta Errada! A resposta correta é a opção D 
Justificativa: Para implementarmos uma interface, devemos colocar a palavra-chave interfaces antes do nome da interface. E para utilizarmos uma interface devemos colocar a palavra-chave implements, não extends. Assim, o código 4 deveria trazer a palavra-chave extends.
	A
	
	O código 1 refere-se à criação de uma classe abstrata. 
	B
	
	O código 2 está incorreto, pois o método locomover pertence à interface "InterfaceTeste". Quando a classe "Formiga" implementou a interface, a mesma alterou a implementação do método. 
	C
	
	O código 3 está escrito de forma correta. 
	D
	
	O código 4 está escrito de forma errada, pois, para utilizarmos uma interface, devemos colocar a palavra-chave implements, não extends. 
	E
	
	Sendo o código 1 a interface, podemos concluir que nos códigos 2, 3 e 4, temos um comportamento polimórfico. 
Questão 2 : Normalmente, uma classe declarada como genérica, não tem um objeto com sua instância e, por conta disso, algumas situações exigem que sua declaração seja abstrata. Avalie as seguintes sentenças e marque a alternativa correta.
Resposta Errada! A resposta correta é a opção D 
Justificativa: Pontualmente, uma classe abstrata poderá ter atributos com qualquer tipo de modificador de acesso (public, abstract e private) e este não pode ser instanciado. As classes abstratas podem estender outras, com no máximo uma classe abstrata ou concreta, e implementar várias interfaces, podendo conter ou não métodos abstratos.
	A
	
	Toda classe abstrata servirá apenas de modelo. Logo, seus métodos deverão ser sobrescritos, mesmo que tenham sua implementação. 
	B
	
	Uma classe abstrata servirá de modelo para outras classes. Seus métodos devem ser concretos, exigindo sua implementação, contendo, assim, as definições de sua assinatura. 
	C
	
	Uma classe abstrata servirá de modelo para outras classes. Seus métodos devem ser abstratos, ma são implementados na classe abstrata e têm definições de sua assinatura. 
	D
	
	Uma classe abstrata servirá de modelo para outras classes. Seus métodos podem ser abstratos e concretos, no entanto, eles não são implementados na classe abstrata, mas têm definições de sua assinatura. 
	E
	
	Toda classe abstrata servirá apenas de modelo. Logo, seus métodos deverão ser sobrescritos quando declarados como abstract, mesmo que tenham sua implementação. 
Questão 3 : A orientação a objetos trouxe alguns conceitos interessantes para a programação, e um deles está relacionado ao conhecimento sobre a implementação interna da classe, o qual é desnecessário do ponto de vista do objeto. Assinale a alternativa correta quanto ao seu nome:
Resposta Errada! A resposta correta é a opção B 
Justificativa: O encapsulamento é a técnica que permite que o conhecimento sobre a implementação interna de uma classe seja desnecessário quanto ao objeto que a instancia. Já o relacionamento não é um conceito-base da orientação a objetos. Ainda, as classes são estruturas e a abstração, embora seja um dos conceitos novos, diz respeito a entender o conceito de objetos, enquanto que a herança refere-se a herdar estruturas de uma classe para outra.
	A
	
	Relacionamentos. 
	B
	
	Encapsulamento. 
	C
	
	Classes. 
	D
	
	Abstração. 
	E
	
	Herança. 
Questão 4 : Um dos novos conceitos surgidos sobre a programação orientada a objeto é o de que ela é um mecanismo por meio do qual é possível selecionar as funcionalidades utilizadas de forma dinâmica por um programa no decorrer de sua execução. Assinale a alternativa correta que apresenta o nome desse mecanismo:
Acertou! A resposta correta é a opção E 
Justificativa: O polimorfismo é o mecanismo que possibilita às funcionalidades serem utilizadas de forma dinâmica por um programa no decorrer de sua execução. Os atributos resultam das características dos objetos; já a herança é a possibilidade de uma classe herdar a estrutura de outra e abstração é o entendimento de entidades do mundo real para a concepção de objetos.
	A
	
	Atributos. 
	B
	
	Herança. 
	C
	
	Classes. 
	D
	
	Abstração. 
	E
	
	Polimorfismo. 
Questão 5 : 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;
}
}
Resposta Errada! A resposta correta é a opção C 
Justificativa: Para implementarmos uma subclasse é necessário colocar o nome da subclasse seguido da palavra extends e em seguida o nome da superclasse.
	A
	
	O código é inválido pois não possui um método main(). 
	B
	
	Não é necessária a criação de métodos de acesso como get e set, pois a classe possui apenas um atributo. 
	C
	
	A palavra-chave "extends" informa que a classe "Agua” é uma extensão da classe "Bebida". 
	D
	
	A classe "Agua", quando instanciada, terá acesso apenas ao atributo ph, através dos métodos set e get. 
	E
	
	A classe não poderá ser instanciada, pois é necessário que os métodos de acesso da superclasse estejam implementados na subclasse 
Questão 6 : Analise o código e marque a alternativa INCORRETA. 1 - class Gen{
2 - T ob;
3 -
4 - Gen(T o) {
5 -
6 - ob = o;
7 -
8 -    }
9 -
10 -    T getob(){
11 -     return ob;
12 -      }
13 -
14 -     void showType() {
15 -
16 -      System.out.println(Type of T is + ob.getClass().getName());
17 -
18 -    }
19 -    }
20 -
21 -
22 -  //Demonstra a classe genérica.
23 -
24 - class GenDemo {
25 -
26 - public static void main(String[] args){
27 -
28 - Gen iOb = new Gen(88);
29 -
30 - iOb.showType();
31 -
32 - int v = iOb.getob();
33 -
34 - System.out.println(Value: + v);
35 -
36 - System.out.println();
37 -
38 - Gen strOb = new Gen(Generics Test);
39 -
40 - strOb.showType();
41 -
42 - String str = strOb.getob();
43 -
44 - System.out.println(Value: + str);
45 -
46 - }
47 - } 
Resposta Errada! A resposta correta é a opção B 
Justificativa: T é um espaço reservado para o tipo real que será criado. Logo, ob será um objeto do tipo passado para T.
	A
	
	Veja o trecho de código escrito na linha 1. class Gen{ A letra T, representa o nome de um parâmetro de tipo. 
	B
	
	Veja o trecho de código escrito na linha 2. T ob; Teremos um erro de compilação, pois não estamos definindo um tipo válido para o atributo ob. 
	C
	
	Veja o trecho de código escrito nas linhas 10,11 e 12. T getob(){ return ob; } Temos o método getob() que retorna um tipo T. 
	D
	
	Veja o trecho de código escrito na linha 28. Gen iOb=new Gen(88); Estamos criando uma versão de Gen para inteiros e atribuindo uma referência a iOb a uma instância da classe GEN. 
	E
	
	Veja o trecho de código escrito na linha 38. Gen strOb=new Gen("Generics Test"); Aqui, GenDemo está declarando um objeto do tipo Gen. 
Questão 7 : O tratamento de exceções em java é gerenciado por cinco palavras-chave. Marquea alternativa correta.
Resposta Errada! A resposta correta é a opção A 
Justificativa: O tratamento de exceções em java é gerenciado por cinco palavras-chave: try, catch, throw, throws e finally.
	A
	
	Try, catch, throw, throws e finally. 
	B
	
	Try, catch, class, final e finally. 
	C
	
	Try, catch, switch-case, throw e finally. 
	D
	
	Void, throw, throws, static e abstract. 
	E
	
	Private, public, static, protected e void. 
Questão 8 : Analise o código abaixo e marque a afirmativa incorreta. 
 
public class Animal{
public void locomover(){
System.out.println(Se locomove);
  }
}
public class Peixe extendas Animal {
public void locomover(){
System.out.println(Nada);
  }
}
Resposta Errada! A resposta correta é a opção D 
Justificativa: Ao instanciar a classe Peixe, e através de uma variável de referência chamar o método locomover(), a saída que teremos é : Nada. Isso porque o método locomover() foi sobrescrito na classe Peixe.
	A
	
	A classe Peixe é uma subclasse de Animal. 
	B
	
	A classe Animal é uma classe genérica. 
	C
	
	Ao instanciar a classe Peixe, e através de uma variável de referência chamar o método locomover(), a saída que teremos é : Nada. 
	D
	
	Ao instanciar a classe Peixe, e através de uma variável de referência chamar o método locomover(), a saída que teremos é : Se locomove. 
	E
	
	O método locomover(), herdado pela classe Peixe, foi sobrescrito, pois sua assinatura continua a mesma e apenas seu comportamento foi alterado. 
Questão 9 : Marque a alternativa que melhor descreve o padrão Strategy.
Resposta Errada! A resposta correta é a opção D 
Justificativa: Strategy.
	A
	
	Fornece uma interface para a criação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. 
	B
	
	Representa uma operação a ser executada sobre os elementos da estrutura de um objeto. 
	C
	
	Permite que um objeto altere seu comportamento quando seu estado interno muda. 
	D
	
	Define uma família de algoritmos, encapsula cada um deles e torna-os intercambiáveis. 
	E
	
	Sem violar o encapsulamento, captura e externaliza um estado interno de um objeto, de modo que o mesmo possa, posteriormente, ser restaurado para este estado. 
Questão 10 : Observe os trechos de códigos abaixo e marque a alternativa incorreta.
Resposta Errada! 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 1 : Observe os trechos de códigos abaixo e marque a alternativa incorreta.
Resposta Errada! 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 : Normalmente, uma classe declarada como genérica, não tem um objeto com sua instância e, por conta disso, algumas situações exigem que sua declaração seja abstrata. Avalie as seguintes sentenças e marque a alternativa correta.
Resposta Errada! A resposta correta é a opção D 
Justificativa: Pontualmente, uma classe abstrata poderá ter atributos com qualquer tipo de modificador de acesso (public, abstract e private) e este não pode ser instanciado. As classes abstratas podem estender outras, com no máximo uma classe abstrata ou concreta, e implementar várias interfaces, podendo conter ou não métodos abstratos.
	A
	
	Toda classe abstrata servirá apenas de modelo. Logo, seus métodos deverão ser sobrescritos, mesmo que tenham sua implementação. 
	B
	
	Uma classe abstrata servirá de modelo para outras classes. Seus métodos devem ser concretos, exigindo sua implementação, contendo, assim, as definições de sua assinatura. 
	C
	
	Uma classe abstrata servirá de modelo para outras classes. Seus métodos devem ser abstratos, ma são implementados na classe abstrata e têm definições de sua assinatura. 
	D
	
	Uma classe abstrata servirá de modelo para outras classes. Seus métodos podem ser abstratos e concretos, no entanto, eles não são implementados na classe abstrata, mas têm definições de sua assinatura. 
	E
	
	Toda classe abstrata servirá apenas de modelo. Logo, seus métodos deverão ser sobrescritos quando declarados como abstract, mesmo que tenham sua implementação. 
Questão 3 : Em relação aos atributos de uma classe, podemos afirmar que a palavra-chave final é usada para:
Acertou! A resposta correta é a opção B 
Justificativa: Uma constante é um atributo imutável, isto é, recebe um valor que não será modificado na aplicação. Com isso, faz-se necessário o uso da palavra final na declaração deste atributo.
	A
	
	Declarar variáveis. 
	B
	
	Declarar uma constante. 
	C
	
	Para declararmos atributos estáticos. 
	D
	
	Para declararmos atributos que receberam valor de ponto flutuante. 
	E
	
	Para não declararmos dois ou mais atributos com o mesmo nome. 
Questão 4 : Na orientação a objetos temos um importante conceito, que é a herança. Marque a alternativa que melhor define herança em orientação a objetos:
Resposta Errada! A resposta correta é a opção E 
Justificativa: Com uma estrutura de herança, outras classes podem usar métodos e atributos de uma classe genérica.
	A
	
	Herança refere-se ao comportamento dos objetos. 
	B
	
	Quando o valor de um atributo pode ser compartilhado entre vários objetos. 
	C
	
	Quando há a necessidade de utilizar uma classe que está em outro pacote, fazemos uso da palavra-chave herança. 
	D
	
	Dizemos que há herança quando duas ou mais classes dependem uma da outra. 
	E
	
	A herança é um mecanismo para aprimorar as classes existentes. 
Questão 5 : Analise o código e marque a alternativa INCORRETA. 1 - class Gen{
2 - T ob;
3 -
4 - Gen(T o) {
5 -
6 - ob = o;
7 -
8 -    }
9 -
10 -    T getob(){
11 -     return ob;
12 -      }
13 -
14 -     void showType() {
15 -
16 -      System.out.println(Type of T is + ob.getClass().getName());
17 -
18 -    }
19 -    }
20 -
21 -
22 -  //Demonstra a classe genérica.
23 -
24 - class GenDemo {
25 -
26 - public static void main(String[] args){
27 -
28 - Gen iOb = new Gen(88);
29 -
30 - iOb.showType();
31 -
32 - int v = iOb.getob();
33 -
34 - System.out.println(Value: + v);
35 -
36 - System.out.println();
37 -
38 - Gen strOb = new Gen(Generics Test);
39 -
40 - strOb.showType();
41 -
42 - String str = strOb.getob();
43 -
44 - System.out.println(Value: + str);
45 -
46 - }
47 - } 
Acertou! A resposta correta é a opção B 
Justificativa: T é um espaço reservado para o tipo real que será criado. Logo, ob será um objeto do tipo passado para T.
	A
	
	Veja o trecho de código escrito na linha 1. class Gen{ A letra T, representa o nome de um parâmetro de tipo. 
	B
	
	Veja o trecho de código escrito na linha 2. T ob; Teremos um erro de compilação, pois não estamos definindo um tipo válido para o atributo ob. 
	C
	
	Veja o trecho de código escrito nas linhas 10,11 e 12. T getob(){ return ob; } Temos o método getob() que retorna um tipo T. 
	D
	
	Veja o trecho de código escrito na linha 28. Gen iOb=new Gen(88); Estamos criando uma versão de Gen para inteiros e atribuindo uma referência a iOb a uma instância da classe GEN. 
	E
	
	Veja o trecho de código escrito na linha 38. Gen strOb=new Gen("Generics Test"); Aqui, GenDemo está declarando um objeto do tipo Gen. 
Questão 6 : Marque a alternativa incorreta.Resposta Errada! A resposta correta é a opção E 
Justificativa: Todo try deve ter uma instrução catch associada, pois o bloco do try monitora e a instrução catch captura o erro.
	A
	
	Um dos principais benefícios da exceção é que seu programa não pare a execução. 
	B
	
	As divisões por zero ocorrem no erro "AritmethicException". 
	C
	
	Quando extrapolamos o limite de um Array ocorre um erro "ArrayIndexOutOfBoundsException". 
	D
	
	Blocos try podem ser aninhados. 
	E
	
	Caso tenhamos um try dentro de outro, o interno não necessita ter uma instrução catch associada. 
Questão 7 : Normalmente, em programação orientada a objetos, utiliza-se o conceito de que uma classe pode receber atributos e métodos de uma classe denominada superclasse. Qual o nome dessa característica?
Acertou! A resposta correta é a opção C 
Justificativa: Sempre que uma classe B se relaciona com outra A, via extensão, a classe B recebe por herança os atributos e os métodos da classe A, com modificadores de acesso public ou protect. Somente os atributos de métodos, denominado privado, não são diretamente herdados.
	A
	
	Característica polimórfica. 
	B
	
	Característica de uma interface. 
	C
	
	Característica de herança. 
	D
	
	Característica de uma implementação. 
	E
	
	Característica de uma abstração. 
Questão 8 : Qual o objetivo de usarmos a palavra-chave final em membros de uma classe?
Acertou! 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 9 : O tratamento de exceções em java é gerenciado por cinco palavras-chave. Marque a alternativa correta.
Acertou! A resposta correta é a opção A 
Justificativa: O tratamento de exceções em java é gerenciado por cinco palavras-chave: try, catch, throw, throws e finally.
	A
	
	Try, catch, throw, throws e finally. 
	B
	
	Try, catch, class, final e finally. 
	C
	
	Try, catch, switch-case, throw e finally. 
	D
	
	Void, throw, throws, static e abstract. 
	E
	
	Private, public, static, protected e void. 
Questão 10 : 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;
}
}
Acertou! A resposta correta é a opção C 
Justificativa: Para implementarmos uma subclasse é necessário colocar o nome da subclasse seguido da palavra extends e em seguida o nome da superclasse.
	A
	
	O código é inválido pois não possui um método main(). 
	B
	
	Não é necessária a criação de métodos de acesso como get e set, pois a classe possui apenas um atributo. 
	C
	
	A palavra-chave "extends" informa que a classe "Agua” é uma extensão da classe "Bebida". 
	D
	
	A classe "Agua", quando instanciada, terá acesso apenas ao atributo ph, através dos métodos set e get. 
	E
	
	A classe não poderá ser instanciada, pois é necessário que os métodos de acesso da superclasse estejam implementados na subclasse 
Questão 1 : 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.
Acertou! 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 2 : Marque a alternativa correta.
Acertou! 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 : Em relação ao polimorfismo, marque a alternativa incorreta.
Resposta Errada! A resposta correta é a opção D 
Justificativa: Polimorfismo significa muitas formas, com isso, os métodos podem assumir ações diferentes de acordo com a especificação da classe que está utilizando-os. Portanto, devemos alterar a implementação destes métodos.
	A
	
	O polimorfismo permite que programemos no geral, e não no específico. 
	B
	
	Programar no específico é quando o programa determina o tipo de objeto no momento da execução. 
	C
	
	Para trabalharmos com polimorfismo, podemos herdar métodos de uma superclasse ou implementarmos uma interface. 
	D
	
	A técnica de polimorfismo não permite que alteremos a implementação de um método. 
	E
	
	Novos tipos de objeto que podem responder às chamadas de método já existentes podem ser incorporados ao sistema sem alterar o sistema básico. 
Questão 4 : Ao aplicar o conceito de herança em Java, aplica-se em todos os métodos, inclusive os métodos construtores da classe. 
 
Nesse contexto, analise o seguinte código em Java:
public class Funcionario(){
     public Funcionario(){
System.out.println(Novo funcionário);
}
public Funcionario(String nome){
       System.out.println(Novo funcionário +nome);
      }
}
public class Horista extends Funcionario(){
     
        public Horista(){
             
             super(Paulo); 
      }
}
Assinale a alternativa que indica a saída ao instanciar um objeto da classe horista.
 
Resposta Errada! A resposta correta é a opção D 
Justificativa: Ao se criar um objeto da classe horista será exibida a mensagem "Novo funcionário Paulo", pois o objeto irá chamar o construtor da superclasse. Na classe funcionário, será executado o construtor que recebe um parâmetro, pois a classe horista passa o nome Paulo como parâmetro.
	A
	
	Ao se criar um objeto da classe horista será exibida a mensagem "Novo funcionário". 
	B
	
	Ao se criar um objeto da classe horista será exibida a mensagem "Paulo". 
	C
	
	Ao se criar um objeto da classe horista não será exibida nenhuma mensagem. 
	D
	
	Ao se criar um objeto da classe horista será exibida a mensagem "Novo funcionário Paulo". 
	E
	
	Ao se criar um objeto da classe horista ocorrerá um erro, pois essa classe horista não tem construtor. 
Questão 5 : Analise o código abaixo e marque a alternativa correta.
  
 
 
Resposta Errada! A resposta correta é a opção D 
Justificativa: Para implementarmos uma interface, devemos colocar a palavra-chave interfaces antes do nome da interface. E para utilizarmos uma interface devemos colocar a palavra-chave implements, não extends. Assim, o código 4 deveria trazer a palavra-chave extends.
	A
	
	O código 1 refere-se à criação de uma classe abstrata. 
	B
	
	O código 2 está incorreto, pois o método locomover pertence à interface "InterfaceTeste". Quando a classe "Formiga" implementou a interface, a mesma alterou a implementação do método. 
	C
	
	O código 3 está escrito de forma correta. 
	D
	
	O código 4 está escrito de forma errada, pois, para utilizarmos uma interface, devemos colocar a palavra-chave implements, não extends. 
	E
	
	Sendo o código 1 a interface, podemos concluir que nos códigos 2, 3 e 4, temos um comportamento polimórfico. 
Questão 6 : Marque a alternativa correta.
Acertou! A resposta correta é a opção C 
Justificativa: Um método declarado como protected na superclassepode ser redeclarado protected (o usual a ser feito) ou public, mas não pode ser declarado private ou ter acesso de pacote.
	A
	
	Os métodos que sobrescrevem não possuem especificadores de acesso. 
	B
	
	Uma subclasse não pode alterar o acesso aos métodos da superclasse. 
	C
	
	Um método declarado como protected na superclasse pode ser declarado public na subclasse. 
	D
	
	Um método declarado como protected na superclasse pode ser declarado private na subclasse. 
	E
	
	O método que sobrescreve não pode ser final. 
Questão 7 : Observe os trechos de códigos abaixo e marque a alternativa incorreta.
Resposta Errada! 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 8 : Marque a alternativa incorreta.
Resposta Errada! A resposta correta é a opção E 
Justificativa: Os padrões com propósito estrutural são: Adapter(class), Adapter(Object), Bridge, Composite, Decorator, Facade, Flyweight, Proxy.
	A
	
	O critério "escopo" especifica se o padrão se aplica primeiramente a classes ou a objetos. 
	B
	
	O padrão para classes lida com os relacionamentos entre classes e suas subclasses. 
	C
	
	Alguns padrões são frequentemente usados em conjuntos. 
	D
	
	Os padrões Factor Method, Abstract Factor, Builder, Prototype e Singleton possuem a finalidade de Criação. 
	E
	
	Os padrões com propósito estrutural são: Adapter(class), Adapter(Object), Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Visotor. 
Questão 9 : Membros declarados com esse modificador de acesso são acessíveis em subclasses da classe, em subclasses do mesmo pacote e na própria classe:
Acertou! A resposta correta é a opção A 
Justificativa: Membros declarados como protected são acessíveis em subclasses da classe, em subclasses do mesmo pacote e na própria classe.
	A
	
	Protected. 
	B
	
	Private. 
	C
	
	Public. 
	D
	
	Package. 
	E
	
	Static. 
Questão 10 : Um método pode ser sobrescrito apenas quando:
Resposta Errada! A resposta correta é a opção D 
Justificativa: Um método pode ser sobrescrito somente se for acessível.
	A
	
	Tem o modificador de acesso private. 
	B
	
	Tem o mesmo nome da classe a qual pertence. 
	C
	
	É um construtor. 
	D
	
	É acessível. 
	E
	
	Tem o mesmo tipo de retorno. 
Questão 1 : Em relação a tipos genéricos, marque a alternativa INCORRETA.
Acertou! A resposta correta é a opção C 
Justificativa: Apesar de String não ser um tipo primitivo de dados, também não pode ser considerado como genérico. A explicação é bem simples: todo atributo que recebe um String como dados é reconhecido apenas como uma cadeia de caracteres.
	A
	
	O tópico genérico é extenso. 
	B
	
	Genéricos não são tipos primitivos de dados. 
	C
	
	Quando declaramos um atributo como String, estamos declarando como genérico. 
	D
	
	Com um genérico você pode definir um algoritmo apenas uma vez, independentemente do tipo de dados. 
	E
	
	Com genéricos, podemos reutilizar código. 
Questão 2 : Queremos criar uma interface com o nome Contrato e com o método sem retorno chamado entrarComTexto(). Marque a afirmativa que escreve corretamente o código.
Resposta Errada! A resposta correta é a opção D 
Justificativa: Esse código cria uma interface, pois estamos fazendo o uso da palavra-chave interface e o método entrarComtexto() é um método sem retorno e abstrato.
	A
	
	public class Contrato{ void entrarComTexto(String texto); } 
	B
	
	public abstract class Contrato{ void entrarComTexto(String texto); } 
	C
	
	public interface Contrato{ void entrarComTexto(String texto); } 
	D
	
	public interface Contrato{ void entrarComTexto(String texto); } 
	E
	
	public interface Contrato{ void entrarComTexto(String texto){ text=texto; System.out.println(texto); } } 
Questão 3 : A unidade básica de encapsulamento, em Java, é:
Resposta Errada! A resposta correta é a opção C 
Justificativa: Uma classe especifica tanto dados, como códigos que operam sobre eles e os mesmos podem ser encapsulados. Portanto, classe é a unidade básica do encapsulamento.
	A
	
	Pacote. 
	B
	
	Modificadores de acesso. 
	C
	
	Classe. 
	D
	
	Método. 
	E
	
	Interface pública da classe. 
Questão 4 : Em relação à forma geral de uma classe, podemos afirmar:
Resposta Errada! A resposta correta é a opção C 
Justificativa: Para criarmos uma classe, é necessário colocarmos a palavra-chave class antes do seu nome. Exemplo: class Cliente.
	A
	
	Uma classe é criada com o uso da palavra-chave public. 
	B
	
	É impossível usar comentários dentro de uma classe. 
	C
	
	Uma classe é criada com a palavra-chave class. 
	D
	
	Os parênteses são caracteres que delimitam o bloco da classe. 
	E
	
	Podemos usar palavras reservadas de uma linguagem de programação para nomearmos classes. 
Questão 5 : Em orientação a objetos, como devemos começar as atividades de programação?
Resposta Errada! A resposta correta é a opção D 
Justificativa: O que há de concreto na programação orientada a objetos são os próprios objetos, pois eles possuem estados (atributos com valores) e comportamentos (métodos); identificando os objetos, podemos verificar características semelhantes e classificá-los em classes.
	A
	
	Identificando os atributos. 
	B
	
	Identificando os métodos. 
	C
	
	Identificando os requisitos funcionais da aplicação. 
	D
	
	Identificando objetos e as classes às quais eles pertencem. 
	E
	
	Identificando nomes de classes. 
Questão 6 : Analise o código e marque a alternativa INCORRETA. 1 - class Gen{
2 - T ob;
3 -
4 - Gen(T o) {
5 -
6 - ob = o;
7 -
8 -    }
9 -
10 -    T getob(){
11 -     return ob;
12 -      }
13 -
14 -     void showType() {
15 -
16 -      System.out.println(Type of T is + ob.getClass().getName());
17 -
18 -    }
19 -    }
20 -
21 -
22 -  //Demonstra a classe genérica.
23 -
24 - class GenDemo {
25 -
26 - public static void main(String[] args){
27 -
28 - Gen iOb = new Gen(88);
29 -
30 - iOb.showType();
31 -
32 - int v = iOb.getob();
33 -
34 - System.out.println(Value: + v);
35 -
36 - System.out.println();
37 -
38 - Gen strOb = new Gen(Generics Test);
39 -
40 - strOb.showType();
41 -
42 - String str = strOb.getob();
43 -
44 - System.out.println(Value: + str);
45 -
46 - }
47 - } 
Resposta Errada! A resposta correta é a opção B 
Justificativa: T é um espaço reservado para o tipo real que será criado. Logo, ob será um objeto do tipo passado para T.
	A
	
	Veja o trecho de código escrito na linha 1. class Gen{ A letra T, representa o nome de um parâmetro de tipo. 
	B
	
	Veja o trecho de código escrito na linha 2. T ob; Teremos um erro de compilação, pois não estamos definindo um tipo válido para o atributo ob. 
	C
	
	Veja o trecho de código escrito nas linhas 10,11 e 12. T getob(){ return ob; } Temos o método getob() que retorna um tipo T. 
	D
	
	Veja o trecho de código escrito na linha 28. Gen iOb=new Gen(88); Estamos criando uma versão de Gen para inteiros e atribuindo uma referência a iOb a uma instância da classe GEN. 
	E
	
	Veja o trecho de código escrito na linha 38. Gen strOb=new Gen("Generics Test"); Aqui, GenDemo está declarando um objeto do tipo Gen. 
Questão 7 : Marque a afirmativa correta:
Acertou! A resposta correta é a opção C 
Justificativa: Imagine que temos uma classe com o nome “Cadastro”; poderíamos definir o que os objetos desta classe fariam? Agora, temos uma classe chamada “Cliente”; bom, esta trata da criação de objetos Cliente. Com isso, podemos concluir que a definição de um nome para a classe é aspecto fundamental para a criação da mesma.
	A
	
	Nomeamos uma classe utilizando um verbo que define o objetivo dessa classe. 
	B
	
	Uma classe deveser criada para representar vários conceitos do domínio do problema. 
	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. 
	D
	
	Uma categoria útil de classes pode ser descrita como atores. Essas classes servem para iniciar um programa. 
	E
	
	Uma prática comum é nomear métodos com algum substantivo. 
Questão 8 : Ao aplicar o conceito de herança em Java, aplica-se em todos os métodos, inclusive os métodos construtores da classe. 
 
Nesse contexto, analise o seguinte código em Java:
public class Funcionario(){
     public Funcionario(){
System.out.println(Novo funcionário);
}
public Funcionario(String nome){
       System.out.println(Novo funcionário +nome);
      }
}
public class Horista extends Funcionario(){
     
        public Horista(){
             
             super(Paulo); 
      }
}
Assinale a alternativa que indica a saída ao instanciar um objeto da classe horista.
 
Resposta Errada! A resposta correta é a opção D 
Justificativa: Ao se criar um objeto da classe horista será exibida a mensagem "Novo funcionário Paulo", pois o objeto irá chamar o construtor da superclasse. Na classe funcionário, será executado o construtor que recebe um parâmetro, pois a classe horista passa o nome Paulo como parâmetro.
	A
	
	Ao se criar um objeto da classe horista será exibida a mensagem "Novo funcionário". 
	B
	
	Ao se criar um objeto da classe horista será exibida a mensagem "Paulo". 
	C
	
	Ao se criar um objeto da classe horista não será exibida nenhuma mensagem. 
	D
	
	Ao se criar um objeto da classe horista será exibida a mensagem "Novo funcionário Paulo". 
	E
	
	Ao se criar um objeto da classe horista ocorrerá um erro, pois essa classe horista não tem construtor. 
Questão 9 : Marque a alternativa incorreta.
Resposta Errada! A resposta correta é a opção E 
Justificativa: Os padrões com propósito estrutural são: Adapter(class), Adapter(Object), Bridge, Composite, Decorator, Facade, Flyweight, Proxy.
	A
	
	O critério "escopo" especifica se o padrão se aplica primeiramente a classes ou a objetos. 
	B
	
	O padrão para classes lida com os relacionamentos entre classes e suas subclasses. 
	C
	
	Alguns padrões são frequentemente usados em conjuntos. 
	D
	
	Os padrões Factor Method, Abstract Factor, Builder, Prototype e Singleton possuem a finalidade de Criação. 
	E
	
	Os padrões com propósito estrutural são: Adapter(class), Adapter(Object), Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Visotor. 
Questão 10 : Em algumas linguagens de programação orientada a objetos, como C++ e Python, é possível que uma classe possua relacionamento de herança com mais de uma classe. Assinale a alternativa correta quanto ao nome desse tipo de herança:
Resposta Errada! A resposta correta é a opção D 
Justificativa: Quando uma classe tem relacionamento de herança com mais de uma classe, esse tipo de relacionamento é chamado de Herança Múltipla. As demais denominações - Herança Composta, Herança Binária, Herança Dupla, Herança Associativa - não existem. Dizem-se Herança Simples, quando herda de apenas uma classe, e Herança Múltipla como nesses casos.
	A
	
	Herança Composta. 
	B
	
	Herança Associativa. 
	C
	
	Herança Dupla. 
	D
	
	Herança Múltipla. 
	E
	
	Herança Binária. 
Questão 1 : Um objeto é uma instância de uma classe em programação orientada a objetos. As classes definem, então, a estrutura dos objetos que serão instanciados a partir dela. Com base nessa afirmativa, analise a classe a seguir em Java e assinale a alternativa correta: public class Bola { String cor; int tamanho; boolean cheia; void encher() { cheia = true; } void esvaziar() { cheia = false; } }
Acertou! A resposta correta é a opção C 
Justificativa: Os atributos da classe que você analisou são: cor, tamanho e bola. Cada atributo de um tipo, ou seja, cor é um tipo string, tamanho do tipo int e cheia do tipo booleano. Encher e esvaziar são métodos que alteram o valor do atributo cheia.
	A
	
	Cor, tamanho e cheia são métodos da classe bola. 
	B
	
	Esvaziar e encher são atributos do tipo void, da classe bola. 
	C
	
	Cor, tamanho e cheia são atributos da classe bola. 
	D
	
	Esvaziar, encher e cheia são métodos da classe bola. 
	E
	
	Cor e tamanho são atributos e cheia método booleano da classe bola. 
Questão 2 : A unidade básica de encapsulamento, em Java, é:
Resposta Errada! A resposta correta é a opção C 
Justificativa: Uma classe especifica tanto dados, como códigos que operam sobre eles e os mesmos podem ser encapsulados. Portanto, classe é a unidade básica do encapsulamento.
	A
	
	Pacote. 
	B
	
	Modificadores de acesso. 
	C
	
	Classe. 
	D
	
	Método. 
	E
	
	Interface pública da classe. 
Questão 3 : Em relação aos métodos estáticos ou de classes, marque a afirmativa correta.
Resposta Errada! A resposta correta é a opção E 
Justificativa: A palavra-chave static é colocada antes do tipo de retorno do método. Exemplo: public static void main(String [] args){...}
	A
	
	Métodos são variáveis que tem a capacidade de receber uma quantidade maior de informação. 
	B
	
	Métodos estáticos não são membros de classes. 
	C
	
	Métodos estáticos servem apenas para operações de inserção de dados. 
	D
	
	Por serem estáticos, os métodos não podem ser chamados em outras classes. 
	E
	
	Métodos estáticos são declarados colocando-se a palavra-chave static antes do tipo de retorno. 
Questão 4 : 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; } }
Acertou! 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 5 : Marque a afirmativa correta:
Resposta Errada! A resposta correta é a opção C 
Justificativa: Imagine que temos uma classe com o nome “Cadastro”; poderíamos definir o que os objetos desta classe fariam? Agora, temos uma classe chamada “Cliente”; bom, esta trata da criação de objetos Cliente. Com isso, podemos concluir que a definição de um nome para a classe é aspecto fundamental para a criação da mesma.
	A
	
	Nomeamos uma classe utilizando um verbo que define o objetivo dessa classe. 
	B
	
	Uma classe deve ser criada para representar vários conceitos do domínio do problema. 
	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. 
	D
	
	Uma categoria útil de classes pode ser descrita como atores. Essas classes servem para iniciar um programa. 
	E
	
	Uma prática comum é nomear métodos com algum substantivo. 
Questão 6 : Marque a afirmativa que define interface.
Resposta Errada! A resposta correta é a opção B 
Justificativa: Interface define tipos em forma abstrata como uma coleção de métodos.
	A
	
	São formulários que interagem com o usuário. 
	B
	
	Interface define tipos em forma abstrata. 
	C
	
	São elementos da classe. 
	D
	
	Interface serve para organizar classes de uma aplicação. 
	E
	
	Interfaces são classes que possuem apenas métodose podem ser instanciadas. 
Questão 7 : Um método abstrato tem apenas a assinatura e sua implementação e é realizado apenas em classes que implementam a classe abstrata ou a interface. Considerando as propriedades das classes abstratas, qual a saída do seguinte programa?
abstract class demo
{
public int a;
demo()
{
   a = 10;
}
abstract public void set(int a);
abstract public void get();
final abstract public void cal(int item);
}
class Test extends demo
{
Test(){}
@Override
public void set(int a)
{
         this.a = a;
}
@Override
public void get()
{
       System.out.println(a = + a);
}
int x;
@Override
public void cal(int item)
{
         x = item * item;
     }
}
class Main
{
public static void main(String args[])
{
Test obj = new Test();
obj.set(20);
obj.x = 0;
obj.cal(2);
System.out.print(obj.x);
      }
}
Resposta Errada! A resposta correta é a opção A 
Justificativa: Um método final não pode ser sobrescrito. Assim, uma função abstrata não pode ser final, pois viola as regras e causa um erro de compilação. Caso a palavra reservada final seja removida, o programa irá compilar e retornará o valor 4.
	A
	
	Erro de compilação. 
	B
	
	2. 
	C
	
	4. 
	D
	
	10. 
	E
	
	20. 
Questão 8 : Em relação à herança podemos afirmar que:
Resposta Errada! A resposta correta é a opção D 
Justificativa: Também conhecidas como superclasses e subclasses, respectivamente, elas formam a estrutura de herança.
	A
	
	Classes especializadas são aquelas específicas de um determinado domínio. 
	B
	
	Em uma estrutura de herança, todas as classes necessitam possuir o método main(). 
	C
	
	A herança acontece quando, no desenvolvimento, temos a possibilidade de reuso de componentes. 
	D
	
	Em herança possuímos classes genéricas e especializadas. 
	E
	
	Métodos não podem ser herdados por subclasses. 
Questão 9 : 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
}
Acertou! A resposta correta é a opção E 
Justificativa: A instrução try apenas monitora as exceções em seu bloco de código; as exceções são capturadas pela instrução catch.
	A
	
	O código é referente a um tratamento de exceção utilizando try-catch. 
	B
	
	No código, o try é responsável por monitorar a exceção, que pode ser qualquer implementação. 
	C
	
	As palavras try-catch formam a base do tratamento de exceções. 
	D
	
	No código temos dois catch associados a um único try. 
	E
	
	Caso uma exceção fosse lançada, ela seria capturada pela instrução try. 
Questão 10 : Normalmente, uma classe declarada como genérica, não tem um objeto com sua instância e, por conta disso, algumas situações exigem que sua declaração seja abstrata. Avalie as seguintes sentenças e marque a alternativa correta.
Resposta Errada! A resposta correta é a opção D 
Justificativa: Pontualmente, uma classe abstrata poderá ter atributos com qualquer tipo de modificador de acesso (public, abstract e private) e este não pode ser instanciado. As classes abstratas podem estender outras, com no máximo uma classe abstrata ou concreta, e implementar várias interfaces, podendo conter ou não métodos abstratos.
	A
	
	Toda classe abstrata servirá apenas de modelo. Logo, seus métodos deverão ser sobrescritos, mesmo que tenham sua implementação. 
	B
	
	Uma classe abstrata servirá de modelo para outras classes. Seus métodos devem ser concretos, exigindo sua implementação, contendo, assim, as definições de sua assinatura. 
	C
	
	Uma classe abstrata servirá de modelo para outras classes. Seus métodos devem ser abstratos, ma são implementados na classe abstrata e têm definições de sua assinatura. 
	D
	
	Uma classe abstrata servirá de modelo para outras classes. Seus métodos podem ser abstratos e concretos, no entanto, eles não são implementados na classe abstrata, mas têm definições de sua assinatura. 
	E
	
	Toda classe abstrata servirá apenas de modelo. Logo, seus métodos deverão ser sobrescritos quando declarados como abstract, mesmo que tenham sua implementação.
Questão 1 : Marque a alternativa que melhor descreve o padrão Strategy.
Resposta Errada! A resposta correta é a opção D 
Justificativa: Strategy.
	A
	
	Fornece uma interface para a criação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. 
	B
	
	Representa uma operação a ser executada sobre os elementos da estrutura de um objeto. 
	C
	
	Permite que um objeto altere seu comportamento quando seu estado interno muda. 
	D
	
	Define uma família de algoritmos, encapsula cada um deles e torna-os intercambiáveis. 
	E
	
	Sem violar o encapsulamento, captura e externaliza um estado interno de um objeto, de modo que o mesmo possa, posteriormente, ser restaurado para este estado. 
Questão 2 : Ao analisar um modelo de classes de um sistema, você identificou que existe um relacionamento de herança entre as classes MeioPagamento e CartaoCredito, sendo a classe mãe a MeioPagamento e a classe herdeira a CartaoCredito. Sobre essa situação, assinale a alternativa correta:
Resposta Errada! A resposta correta é a opção B 
Justificativa: Como existe um relacionamento de herança entre as classes, sendo a classe MeioPagamento a mãe e a CartaoCredito a herdeira, é possível determinar que todos os atributos e métodos da classe MeioPagamento serão herdados pela classe CartaoCredito, independente da sua visibilidade. Também qualquer novo atributo criado na classe MeioPagamento passará a ser herdado pela classe CartaoCredito e não existe a necessidade de criar antes um objeto da classe MeioPagamento para criar um da classe CartaoCredito.
	A
	
	Somente atributos public da classe MeioPagamento serão herdados pela classe CartaoCredito. 
	B
	
	Todos os atributos da classe MeioPagamento serão herdados pela classe CartaoCredito. 
	C
	
	Todos os atributos serão herdados da classe MeioPagamento, mas os métodos não serão. 
	D
	
	Todos os atributos serão herdados, mas novos atributos inseridos na classe MeioPagamento não serão. 
	E
	
	Não será possível criar um objeto a partir da classe CartaoCredito sem antes criar objeto MeioPagamento. 
Questão 3 : Marque a alternativa incorreta.
Resposta Errada! A resposta correta é a opção E 
Justificativa: Todo try deve ter uma instrução catch associada, pois o bloco do try monitora e a instrução catch captura o erro.
	A
	
	Um dos principais benefícios da exceção é que seu programa não pare a execução. 
	B
	
	As divisões por zero ocorrem no erro "AritmethicException". 
	C
	
	Quando extrapolamos o limite de um Array ocorre um erro "ArrayIndexOutOfBoundsException". 
	D
	
	Blocos try podem ser aninhados. 
	E
	
	Caso tenhamos um try dentro de outro, o interno não necessita ter uma instrução catch associada. 
Questão 4 : Em geral, um padrão tem quatro elementos essenciais. Marque a alternativa que descreve de forma incorreta o elemento.
Resposta Errada! A resposta correta é a opção C 
Justificativa: Neste caso, estamos nos referindo a uma descrição de condições para o problema.
	A
	
	O nome do padrão é a referência que podemos utilizar para descrever um problema de projeto. 
	B
	
	O problema descreve em que situação aplicar o padrão. 
	C
	
	A solução do problema incluirá uma lista de condições que devem ser satisfeitas para que faça sentido aplicar padrão. 
	D
	
	As consequências são o resultado da análise das vantagens e desvantagens (trade-offs) da aplicação do padrão. 
	E
	
	A solução descreve os elementos que compõem o padrão de projetos, seus relacionamentos, suas responsabilidades e colaborações. 
Questão 5 : Em relação a tipos genéricos, marque a alternativa INCORRETA.
Acertou! A resposta correta é a opção C 
Justificativa: Apesar de String não ser um tipo primitivo de dados, também não pode ser considerado como genérico. A explicação é bem simples: todo atributo que recebe um String como dados é reconhecido apenas como uma cadeia de caracteres.
	A
	
	O tópico genérico é extenso.

Outros materiais