Buscar

Programação Orientada a Objetos (resume)

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 10 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 10 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 10 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

AULA 1 – INTRODUÇÃO A CLASSES, OBJETOS E MÉTODOS 
 
1. Em programação orientada a objetos, qual o papel da classe? 
(B) As classes são a fundação, na qual linguagens orientadas a objetos se estruturam. 
resposta é a correta? A linguagem orientada a objetos se estruturam a partir das classes. 
 
2. Em relação à forma geral de uma classe, podemos afirmar: 
(C) Uma classe é criada com a palavra-chave class. 
resposta é a correta? Para criarmos uma classe, é necessário colocarmos a palavra-chave class antes do seu nome. 
Exemplo: class Cliente. 
 
3. Sobre objetos, podemos afirmar que: 
(B) Um objeto é composto por estado e comportamento. 
resposta é a correta? Um objeto é composto por estado e comportamento. O estado é representado por atributos e seus 
valores, e o comportamento é os métodos. 
 
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; 
 } 
 } 
 
(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. 
resposta é a correta? 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. 
 
5. São implementados para realizarem algum tipo de tarefa: 
(D) Métodos. 
resposta é a correta? Métodos são pedaços de códigos, escritos para realizarem alguma ação ou tarefa. 
 
 
 
 
AULA 1 – PROJETANDO CLASSES 
 
1. Em orientação a objetos, como devemos começar as atividades de programação? 
(D) Identificando objetos e as classes às quais eles pertencem. 
resposta é a correta? 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. 
 
 
2. Marque a afirmativa correta: 
(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. 
resposta é a correta? 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. 
 
3. Referente a coesão e acoplamento, podemos afirmar que: 
(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. 
resposta é a correta? As constantes e os métodos públicos que a interface pública expõe devem ser coesos. 
 
4. O que é um pacote? 
(E) É um conjunto de classes relacionadas. 
resposta é a correta? Pacotes servem para organizar 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; 
} 
 
} 
*/ 
 
É correto afirmar que: 
(D) Esta classe não apresenta coesão. 
resposta é a correta? 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. 
 
 
 
 
AULA 2 – ATRIBUTOS E MÉTODOS DE CLASSE 
 
1. Marque a alternativa correta. 
(A) Uma variável estática representa informações em nível de classe. 
resposta é a correta? 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. 
 
2. A declaração de uma variável de classe começa com qual palavra-chave ? 
(E) static. 
resposta é a correta? A declaração de uma variável estática ou de classe começa com a palavra-chave static. Exemplo: 
static int numero. 
 
3. 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. 
resposta é a correta? A palavra-chave static é colocada antes do tipo de retorno do método. Exemplo: public static void 
main(String [] args){...} 
 
4. Para um método de classe acessar membros de classe não estáticos, devemos: 
(C) Um método estático não pode acessar membros de classe não estáticos. 
resposta é a correta? Para o método estático poder acessar um outro membro da classe, o mesmo deve ser estático. 
 
5. Marque a afirmativa correta. 
(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. 
resposta é a correta? Métodos estáticos acessam apenas membros estáticos da classe. 
 
 
 
 
AULA 2 – ENCAPSULAMENTO E MODIFICADORES DE ACESSO 
 
1. Em relação ao encapsulamento, marque a afirmativa INCORRETA: 
(D) Encapsular é deixar os métodos inacessíveis para os usuários da classe. 
resposta é a correta? Encapsular é transformar os objetos da aplicação em caixas-pretas e deixar que o usuário desta 
classe tenha acesso apenas aos métodos que permitem acessar informação e fornecer dados para as operações 
necessárias. 
 
2. Para encapsular um atributo, deixando-o visível apenas para a classe que o contém, utilizamos qual palavra-
chave? 
(E) Private 
resposta é a correta? Para encapsularmos um atributo, utilizamos a palavra-chave private; com isso, o mesmo ficará visível 
apenas para classe da qual ele é membro. 
 
3. A unidade básica de encapsulamento, em Java, é: 
(C) Classe 
resposta é a correta? 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. 
 
4. 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: 
(A) Protected 
resposta é a correta? Membros declarados como protected são acessíveis em subclasses da classe, em subclasses do 
mesmo pacote e na própria classe. 
 
5. Analise o seguinte código e aponte a afirmativa INCORRETA: 
 
public class Aluno { 
private String nome; 
protected String Sobrenome; 
public int matricula; 
public String email; 
 
public String getNome() { 
 return nome; 
} 
 public void setNome(String nome) { 
 this.nome = nome; 
} 
 public String getSobrenome() { 
 return Sobrenome; 
} 
 public void setSobrenome(String Sobrenome) { 
 this.Sobrenome = Sobrenome; 
} 
public int getMatricula() { 
 return matricula; 
} 
 public void setMatricula(int matricula) { 
 this.matricula = matricula; 
} 
 public String getEmail() { 
 return email; 
} 
 public void setEmail(String email) { 
 this.email = email; 
 } 
} 
 
(A) Todos os atributos desta classe poderão ser acessados apenas por seus respectivos métodos. 
resposta é a correta? Os atributos matricula e email poderão ser acessados diretamente, pois sua visibilidade é pública. 
 
 
 
 
 
AULA 3 – INTRODUÇÃO À HERANÇA 
 
1. 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: 
(E) A herança é um mecanismo para aprimorar as classes existentes. 
resposta é a correta?Com uma estrutura de herança, outras classes podem usar métodos e atributos de uma classe 
genérica. 
 
2. Quando identificamos a possibilidade de usar herança em nosso projeto? 
(D) Quando temos uma relação e um ou vários atributos em comum entre duas ou mais classes. 
resposta é a correta? Esta realmente é uma boa forma de identificar a possibilidade de criar uma estrutura de herança em 
nossos projetos. 
 
3. Em relação à herança podemos afirmar que: 
(D) Em herança possuímos classes genéricas e especializadas. 
resposta é a correta? Também conhecidas como superclasses e subclasses, respectivamente, elas formam a estrutura de 
herança. 
 
4. 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". 
resposta é a correta? Para implementarmos uma subclasse é necessário colocar o nome da subclasse seguido da palavra 
extends e em seguida o nome da superclasse. 
 
5. Analise o código abaixo: 
 
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) Na estrutura implementada podemos afirmar que a classe "Homem" é subclasse; a classe "Mamifero" é subclasse e 
superclasse e a classe "Animal" é superclasse. 
resposta é a correta? A classe "Mamifero" assume o papel de subclasse de "Animal" e superclasse de "Homem". 
 
 
 
 
AULA 3 – CONSTRUTORES E HERANÇA 
 
1. Em uma estrutura de herança, para instanciarmos uma classe-filha, utilizamos qual construtor? 
(B) O construtor da subclasse. 
resposta é a correta? O construtor da subclasse constrói parte do objeto referente à subclasse. 
 
2. Em relação a construtores, marque a afirmativa incorreta. 
(E) Construtores não podem ter argumentos. 
resposta é a correta? Construtores, assim como os métodos, podem ter nenhum, um ou mais argumentos. 
 
3. A forma geral de uma declaração class que herda uma superclasse é: 
(A) class nome-subclasse extends nome-superclasse { //corpo da classe } 
resposta é a correta? Para herdar os membros de uma subclasse, é necessário utilizar a palavra-chave extends e, em 
seguida, o nome da Superclasse. 
 
4. Quando tanto a superclasse quanto a subclasse definem construtores, o processo é um pouco mais complicado, 
porque 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 nesta situação. 
(E) super. 
resposta é a correta? Uma subclasse pode chamar um construtor definido por sua superclasse usando a forma de super. 
 
5. Marque a alternativa incorreta. 
(E) A única forma de usar super é a seguinte: super(). 
resposta é a correta? Podemos usar super de duas formas. Primeira forma: super(). A segunda forma, como se estivesse 
fazendo o uso de this, ficaria da seguinte maneira: super.membro, o membro podendo ser métodos ou variáveis da 
superclasse. 
 
 
 
AULA 4 – SOBRESCRITA 
 
1. Um método pode ser sobrescrito apenas quando: 
(D) É acessível. 
resposta é a correta? Um método pode ser sobrescrito somente se for acessível. 
 
2.O que significa sobrescrever um método? 
(A) Substituir a implementação do método da superclasse. 
resposta é a correta? Sobrescrever um método significa substituir a implementação da superclasse daquele método com 
sua própria. 
 
3. Marque a alternativa correta. 
(C) Um método declarado como protected na superclasse pode ser declarado public na subclasse. 
resposta é a correta? Um método declarado como protected na superclasse pode ser redeclarado protected (o usual a ser 
feito) ou public, mas não pode ser declarado private ou ter acesso de pacote. 
 
4. 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"); 
 } 
 } 
 
(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. 
resposta é a correta? 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. 
 
5. Em relação à herança e sobrescrita, marque a alternativa incorreta. 
(E) 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 superclasse. 
resposta é a correta? 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. 
 
 
 
 
AULA 4 – CLASSES ABSTRATAS 
 
1. Marque a alternativa que melhor define classes abstratas. 
(A) Classes abstratas auxiliam quando algum comportamento é definido para a maioria ou todos os objetos de um dado 
tipo. 
resposta é a correta? Classes abstratas auxiliam quando algum comportamento é definido para a maioria ou todos os 
objetos de um dado tipo, mas outros comportamentos fazem sentido somente para classes particulares, não para uma 
superclasse geral. 
 
 
2. Em classes abstratas, temos um padrão no qual uma área de conhecimento particular de uma classe exige que 
outra pessoa providencie uma parte que está faltando. Como esse padrão é conhecido? 
(E) Método gabarito. 
resposta é a correta? A maioria das classes abstratas se enquadra em um padrão no qual uma outra pessoa providencia 
uma parte que está faltando. Isto é conhecido como método gabarito. 
 
3. Marque a alternativa que define métodos abstratos: 
(B) São métodos sem implementação. 
resposta é a correta? Em orientação a objetos, métodos abstratos são métodos de uma classe abstrata que não possuem 
implementação. 
 
4. Em relação a classes abstratas, marque a alternativa incorreta. 
(E) Classes abstratas fornecem a implementação de um ou mais métodos. 
resposta é a correta? Classes abstratas determinam a natureza dos métodos que as subclasses devem implementar, mas 
não fornecem uma implementação de um ou mais desses métodos. 
 
5. Em relação à herança em orientação a objetos, marque a alternativa incorreta. 
(D) Quando uma subclasse herda um método abstrato da superclasse, o mesmo não deve ser implementado. 
resposta é a correta? Os métodos abstratos herdados pela subclasse são implementados de acordo com sua necessidade 
de execução. 
 
 
 
 
AULA 5 – INTERFACES 
 
1. 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. 
(E) Classes. 
respostaé a correta? Java é uma linguagem baseada no paradigma orientado a objeto e classes são a unidade 
fundamental desta linguagem. 
 
2. Marque a afirmativa que define interface. 
(B) Interface define tipos em forma abstrata. 
resposta é a correta? Interface define tipos em forma abstrata como uma coleção de métodos. 
 
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. 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. 
(A) Herança é uma estrutura que possui uma superclasse e subclasses que herdam membros desta superclasse. 
resposta é a correta? Herança dá a possibilidade de classes aumentarem suas funcionalidades, herdando membros de 
uma superclasse. 
 
4. 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. 
(D) public interface Contrato{ 
 void entrarComTexto(String texto); } 
resposta é a correta? 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. 
 
5. 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. 
(D) public class A implements B { } 
resposta é a correta? Esse código está correto, pois, além de criarmos a classe A, estamos implementando a interface B 
através da palavra-chave implements. 
 
 
 
 
AULA 5 – INTRODUÇÃO AO POLIMORFISMO 
 
1. O polimorfismo é um dos quatro pilares da programação de orientação a objetos. Portanto, marque a opção que 
melhor descreva o conceito de polimorfismo. 
(C) Quando cada classe implementa o mesmo método de diferentes maneiras. 
resposta é a correta? Quando múltiplas classes implementam a mesma interface, cada classe implementa os métodos de 
maneira diferente. 
 
2. 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. 
(C) Diferentemente de uma classe, um tipo de interface não fornece nenhuma implementação. 
resposta é a correta? Todos os métodos em um tipo de interfaces são abstratos. 
 
3. Em relação ao polimorfismo, marque a alternativa incorreta. 
(D) A técnica de polimorfismo não permite que alteremos a implementação de um método. 
resposta é a correta? 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. 
 
4. Qual 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. 
resposta é a correta? Quando uma classe implementa uma interface, é como se ela assinasse uma contrato que a obriga a 
utilizar os métodos existentes na interface. Esses métodos devem ser implementados pela classe, isto é, escritos de forma 
a atender a especificidade da classe. 
 
5. Analise o código abaixo e marque a alternativa correta. 
 
 1) public interface InterfaceTeste { 
 public void locomover(); } 
 
 2) public class Formiga implements InterfaceTeste { 
 public void locomover() { 
 System.out.println("Caminha"); } 
 } 
 
 3) public class Passaro implements InterfaceTeste { 
 public void locomover() {} 
 } 
 
 4) public class Peixe extendes InterfaceTeste { 
 public void locomover() { 
 System.out.println("Nada"); } 
 } 
 
(D) O código 4 está escrito de forma errada, pois, para utilizarmos uma interface, devemos colocar a palavra-chave 
implements, não extends. 
resposta é a correta? 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. 
 
 
 
AULA 6 – SOBRECARGA EM JAVA 
 
1. Sobrecarga e polimorfismo são conceitos úteis na programação orientada a objetos. O que é sobrecarga de 
métodos? 
(E) Quando um ou mais métodos possuem o mesmo nome, mas devem possuir conjuntos de parâmetros diferentes. 
resposta é a correta? Ocorre a sobrecarga de métodos quando um ou mais métodos da mesma classe têm o mesmo nome, 
mas com um conjunto de parâmetros diferente. Quando um método é declarado com void, significa que não terá um 
retorno. Quando declaramos um tipo de dado no método, estamos informando que ele terá um retorno daquele tipo. 
Quando um método é declarado com a palavra abstract, estamos nos referindo a um método abstrato. A sobrescrita ocorre 
quando um ou mais métodos têm a mesma assinatura, mas implementações específicas de acordo com a classe a que 
pertencem. 
 
2. É comum, ao trabalharmos com métodos, utilizarmos a expressão "assinatura do método". Marque a alternativa 
que melhor explica do que se trata esta expressão. 
(D) A assinatura do método é composta por seu nome e parâmetros. 
resposta é a correta? O nome e o conjunto de parâmetros do método é sua assinatura. Quando colocamos a palavra-chave 
public na declaração do método, estamos informando que ele é público, isto é, será visível para qualquer classe da 
aplicação. Ao declararmos variáveis e tipos nos argumentos do método, estamos especificando que ele receberá 
argumentos. A declaração do método tem o nome de cabeçalho do método, consistindo em modificador, tipo, nome e 
parâmetros (menos o corpo do método). O conjunto de parâmetros do método faz parte da assinatura, mas é necessário 
acrescentarmos o nome do método. 
 
3. Para saber se um programa em Java apresenta sobrecarga, precisamos 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; } } 
resposta é a correta? o código “a)” apresenta uma classe abstrata com um método abstrato. O código “b)” apresenta uma 
classe com um atributo chamado nome, e por ele estar com o modificador de acesso privado, tem métodos de acesso. Já o 
código apresentado em “c)” apresenta uma classe com dois atributos e um construtor com argumentos. O código “d)” 
apresenta uma classe com dois atributos e três métodos construtores, os quais têm o mesmo nome, mas o conjunto de 
argumentos é diferente; nesse caso, temos sobrecarga de métodos. Por fim, o código “e)” apresenta uma classe com dois 
atributos, um construtor e métodos de acesso, já que os atributos estão declarados com o modificador de acesso private. 
 
4. Podemos tratar a sobrecarga de métodos como sendo um tipo de polimorfismo. Marque a alternativa que melhor 
explique o polimorfismo. 
(C) Polimorfismo é quando utilizamos o mesmo método de maneiras diferentes de acordo com a necessidade de cada 
classe. 
resposta é a correta? Polimorfismo deriva do grego e significa muitas formas. Em orientação a objeto, refere-se à utilização 
do mesmo método de formas diferentes, de acordo com a especificidade de cada classe. Herança é a técnica na qual 
subclasses herdam membros da superclasse. Quando uma classe implementa uma interface, ela deverá, obrigatoriamente, 
utilizar os métodos dessa interface, isto é, como um contrato de comprometimento. Sobrecarga é quando utilizamos o 
método com o mesmo nome,mas alterando seu conjunto de parâmetros. Os métodos set e get são métodos de acesso. 
 
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, marque a alternativa incorreta. 
(C) Quando os métodos de uma mesma classe possuem a mesma assinatura, se tem a ocorrência de sobrecarga. 
resposta é a correta? Quando os métodos têm a mesma assinatura, tem a ocorrência de sobrescrita (e não sobrecarga) de 
métodos. Na sobrecarga, deve alterar o conjunto de parâmetros dos métodos. Quando os métodos da mesma classe têm 
nomes iguais e parâmetros diferentes, ocorre a sobrecarga. Polimorfismo é o uso do mesmo método de forma diferente, 
dependendo da especificação de cada classe. Na sobrecarga, os métodos têm um conjunto de argumentos diferentes e, 
logo, sua implementação também será diferente. 
 
 
 
AULA 6 – ATRIBUTOS E MÉTODOS FINAIS 
 
1. Qual o objetivo de usarmos a palavra-chave final em membros de uma classe? 
(D) Para deixar o membro imutável. 
resposta é a correta? O uso do final serve para darmos imutabilidade. 
 
2. Em relação aos atributos de uma classe, podemos afirmar que a palavra-chave final é usada para: 
(B) Declarar uma constante. 
resposta é a correta? 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. 
 
3. Referindo-nos a métodos, o que define o uso da palavra-chave final? Marque a alternativa correta. 
(A) Impede que um método seja sobreposto. 
resposta é a correta? Com uso da palavra-chave final, é fácil impedir que um método seja sobreposto. 
 
4. Observe os trechos de códigos abaixo e marque a alternativa incorreta. 
(C) public abstract final void som(); 
resposta é a correta? Os modificadores abstract e final não combinan no mesmo método. 
 
5. Analise o código e marque a alternativa incorreta. 
 public class Pessoa { 
 public int anoNasc; 
 public int anoAtual; 
 public int idade; 
 
 public final void calculaIdade(int anoNasc, int anoAtual) { 
 this.anoAtual = anoAtual; 
 this.anoNasc = anoNasc; 
 
 idade = anoAtual - anoNasc; 
 } 
 } 
 
 public class Homem extends Pessoa { 
 @Override 
 public void calculaIdade(int anoNasc, int anoAtual){ 
 
 this.anoAtual = anoAtual; 
 this.anoNasc = anoNasc; 
 
 idade = anoAtual - anoNasc; 
 System.out.println("A idade do homem é: " +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. 
resposta é a correta? 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.

Outros materiais