Buscar

UNIP Programação Orientada a Objestos I Gabarito Unidade III 2018

Prévia do material em texto

Resposta Selecionada: 
Respostas: 
 a. Carmen, Prata. 
 a. Carmen, Prata. 
b. Prata, Carmen. 
c. Carmen, Carmen. 
d. Prata, Prata. 
e. O programa apresenta erros. 
Feedback 
da Resposta: A resposta: 
Comentário: no método Main() são instanciados dois objetos da classe Vegetal – tomate e banana. O atributo Nome de tomate recebe o valor “Carmen” e o 
valor do atributo Nome de banana recebe “Prata”. A saída é gerada com os valores dos nomes de tomate e banana, nessa ordem. 
Pergunta 2 0,25 em 0,25 pontos 
 
Resposta Selecionada: 
 d. Prata, Prata. 
Respostas: 
a. Carmen, Prata. 
b. Prata, Carmen. 
c. Carmen, Carmen. 
 d. Prata, Prata. 
e. O programa apresenta erros. 
Feedback 
da Resposta: D resposta: 
Comentário: no método Main() é criada a referência tomate para uma nova instância da classe Vegetal. A seguir, na linha 18, é criada uma nova referência, 
banana, para a mesma instância referenciada por tomate. Ambas as referências apontam para o mesmo objeto na memória. Assim, quando a linha 20 atribui o 
valor “Carmen” ao atributo Nome de um dos objetos, ambos são atribuídos, porque na verdade só há um objeto na memória. Na linha 21 o mesmo ocorre: 
quando o programa atribui o valor “Prata” ao nome de banana, o Nome de tomate também é atribuído, porque ambos são o mesmo objeto. 
Pergunta 3 0,25 em 0,25 pontos 
 
 
Resposta Selecionada: 
 c. A classe Exemplo apresenta um método construtor. 
Respostas: 
a. A classe Exemplo apresenta um método e um atributo. 
b. A classe Exemplo apresenta dois atributos. 
 c. A classe Exemplo apresenta um método construtor. 
d. A classe Exemplo apresenta dois métodos construtores. 
e. A classe Exemplo apresenta erros. 
Feedback da resposta:
 Resposta: C 
Comentário: a classe Exemplo apresenta dois métodos, sendo um deles um método construtor. O método construtor pode ser identi cado por não 
apresentar tipo de retorno (nem mesmo void) e ter o mesmo nome da classe. 
Pergunta 4 0,25 em 0,25 pontos 
 
Resposta 
 Selecionada: b. A classe Data não possui um construtor, que não recebe nenhum parâmetro. 
Respostas: 
a. A classe Data não possui um construtor. 
 b. A classe Data não possui um construtor, que não recebe nenhum parâmetro. 
c. Os parâmetros do método construtor da classe Data entram em con ito com os atributos da classe Data, pois são idênticos. d. 
Os parâmetros do método construtor da classe Data são ambíguos com relação aos atributos da classe Data, pois são idênticos. 
e. O código não apresenta erros. 
Feedback 
da Resposta: B resposta: 
Comentário: a classe Data apresenta apenas um método construtor, que recebe como parâmetros três parâmetros int. Assim, quando um objeto dessa classe 
é instanciado, como ocorre no método Main(), o construtor deve ser invocado, passando-se três parâmetros do tipo int. 
Pergunta 5 0,25 em 0,25 pontos 
 
Resposta Selecionada: 
 e. O código compila sem erros. 
Respostas: 
a. O código não compila, pois o objeto l da classe Legume não possui um atributo chamado Especie. 
b. O código não compila, pois o objeto l da classe Legume não possui um atributo chamado Nome. 
c. O código não compila, pois a declaração da classe Vegetal está errada. 
d. O código não compila, pois a declaração da classe Legume está errada. 
 e. O código compila sem erros. 
Feedback 
da Resposta: E resposta: 
Comentário: a classe Legume é uma especialização da classe Vegetal, o que é evidenciado pela sua declaração (class Legume : Vegetal). Por isso, o atributo 
Especie é herdado pela classe Legume e não precisa (nem deve) ser declarado novamente. Dessa forma, a classe Legume, de fato, possui dois atributos: 
Especie e Nome. 
Pergunta 6 0,25 em 0,25 pontos 
 
 
Resposta Selecionada: 
Respostas: 
 a. O código é um exemplo de polimor smo.
 a. O código é um exemplo de polimor smo.
b. O código é um exemplo de sobrecarga. 
c. O código é um exemplo de sobrescrita. 
d. O código é um exemplo de delegação. 
e. O código apresenta erros. 
Feedback 
da Resposta: A resposta: 
Comentário: no método Main() é declarada uma variável “v” do tipo Vegetal, mas essa variável recebe uma instância da classe Legume. Como Legume é uma 
especialização, um tipo de Vegetal, então ele pode ser utilizado em qualquer lugar onde um Vegetal pode ser utilizado. Em outras palavras, se um Vegetal 
“entra”, um Legume, que é um tipo de Vegetal, também “entra”. Se a variável “v” espera um Vegetal, ela pode armazenar um Legume, que é um tipo de 
Vegetal. 
Pergunta 7 0,25 em 0,25 pontos 
 A abstração de conceitos do mundo real em classes e objetos é a principal motivação para a formalização do paradigma orientado a objetos. Com isso em mente, assinale a 
alternativa correta: 
Resposta Selecionada: 
 d. Uma classe representa um conjunto de objetos que compartilham as mesmas características e comportamentos. 
Respostas: 
a. As classes modelam os comportamentos do conceito enquanto os objetos modelam as características do conceito. 
b. Os atributos e métodos de um objeto são herdados de sua classe. 
c. Classes representam uma abstração estática enquanto objetos representam uma abstração dinâmica. 
 d. Uma classe representa um conjunto de objetos que compartilham as mesmas características e comportamentos. e. Uma classe é 
uma instância de um objeto. 
Feedback da 
 resposta: Resposta D 
Comentário: uma classe de ne as características dos objetos instanciados por ela, seus atributos e métodos. Dessa forma, todos os objetos dessa classe 
terão as mesmas características (atributos) e comportamentos (métodos). 
Pergunta 8 0,25 em 0,25 pontos 
 O que signi ca o modi cador static? 
Resposta 
Selecionada: 
Respostas: 
 d. 
a. 
Quando aplicado a um atributo, indica que ele terá o mesmo valor para todas as instâncias da classe. 
É um modi cador aplicado a atributos, indicando que ele é uma constante e seu valor não pode ser alterado após ter sido inicializado. 
b. Quando aplicado a um construtor, indica que ele não pode ser sobrescrito. 
c. Quando aplicado a um método, indica que ele não pode ser sobrecarregado. 
 d. Quando aplicado a um atributo, indica que ele terá o mesmo valor para todas as instâncias da classe. 
e. Quando aplicado a um método, indica que este é uma sobrescrita de um método de uma superclasse. 
Feedback 
da Resposta: D resposta: 
Comentário: o modi cador static pode ser aplicado a métodos (exceto construtores) e a atributos. Quando isso é feito em um método, podemos usar tal 
método diretamente da classe, sem a necessidade de instanciar um objeto da classe. Quando static é aplicado a um atributo, este passa a ter o mesmo valor 
para todas as instâncias dessa classe. 
Pergunta 9 0,25 em 0,25 pontos 
 O que signi ca “encapsular atributos”? 
Signi 
ca 
que 
os 
atributos são declarados como públicos para permitir que sejam acessados diretamente por outras partes do sistema, tornando o código mais e 
ciente. 
b. 
Resposta 
Selecionada: 
Respostas: 
 e. 
Signi ca que os atributos são declarados como privados e seu acesso é feito por métodos que garantem a integridade dos dados. a. 
Signi ca que os atributos de uma classe são inicializados pelo método construtor de modo que o objeto esteja pronto para ser utilizado logo 
após ser instanciado. 
c. Signi ca que os atributos seguem o padrão de estilo “camel case”. 
d. Signi ca que os atributos pertencem à classe, não aos objetos instanciados por essa classe. e. 
Signi ca que os atributos são declarados como privados e seu acesso é feito por métodos que garantem a integridade dos dados. 
Feedback 
da Resposta: E resposta: 
Comentário: atributos públicos, por terem acesso livre por qualquer parte docódigo, podem receber valores incorretos. Por exemplo, mês com o valor 42, dia 
da semana com o valor “tomate”, e assim por diante. Para resolver esse problema, tornamos os atributos privados e seu acesso é fornecido exclusivamente 
por métodos acessores (métodos que dão acesso) – um método “get” que retorna o valor do atributo e um método “set” que de ne o valor do atributo, caso o 
valor atribuído seja correto. 
Pergunta 10 0,25 em 0,25 pontos 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
←

Continue navegando