AO2 - Programação Orientada a Objetos
- NOTA 4.8
Pergunta 1
Leia o texto a seguir:
Grupos de desenvolvimento de software podem usar uma
abordagem modular de projeto e implementação orientados a objetos para que
sejam muito mais produtivos do que com as técnicas anteriormente populares como
“programação estruturada” — programas orientados a objetos são muitas vezes
mais fáceis de entender, corrigir e modificar.
Fonte: DEITEL, H.; DEITEL, P. Java: como programar.
10. ed. São Paulo: Pearson Education do Brasil, 2017, p. 8.
Considerando as informações apresentadas, analise as
afirmações abaixo:
I. A programação orientada a objeto é um conjunto de
princípios, portanto pode ser aplicada em qualquer linguagem, desde que o
programador siga seus princípios.
II. Programas orientados a objeto possuem melhor desempenho
do que programas feitos utilizando apenas “programação estruturada”, ou seja,
são mais rápidos e usam menos memória.
IV. Programas orientados a objeto possuem grande capacidade
de reutilização de código, gerando códigos menores e fáceis de propagar
correções ou novas funcionalidades.
Estão corretas as afirmações:
I e II, apenas.
III,
apenas.
II e III, apenas.
I e III, apenas.
II, apenas.
Pergunta 2
Analise o código abaixo:
abstract class Pessoa {
public String nome;
public Pessoa(){
// ...
}
private void anda()
{
// ...
}
protected abstract void fala();
}
Considerando o código exposto acima, por que não podemos
criar objetos da classe Pessoa?
Porque
ela é uma classe abstrata e serve apenas para herança.
Porque ela não possui get e set para seu atributo.
Porque ela possui erros: atributo público e métodos private
e protected.
Porque ela é uma interface.
Porque faltou implementar o método fala.
Pergunta 3
Leia o texto a seguir:
Assim como os desenhos de engenharia de um carro podem ser
reutilizados várias vezes para fabricar muitos carros, você pode reutilizar uma
classe muitas vezes para construir vários objetos. A reutilização de classes
existentes novas classes e programas economiza tempo e
esforço. Também ajuda a construir sistemas mais confiáveis e eficientes, porque
classes e componentes existentes costumam passar por extensos testes, depuração
e ajuste de desempenho. Assim como a noção das partes intercambiáveis foi
crucial para a Revolução Industrial, classes reutilizáveis são fundamentais
para a revolução de software que foi estimulada pela tecnologia de objetos.
Fonte: DEITEL, H.; DEITEL, P. Java: como programar.
10. ed. São Paulo: Pearson Education do Brasil, 2017, p. 9.
Considerando as informações apresentadas, avalie as
asserções abaixo e a relação proposta entre elas.
I. A programação orientada a objeto adota princípios como a
abstração, o encapsulamento, a herança e o polimorfismo.
PORQUE
II. Os quatro princípios da programação orientada a objeto
combinados dão origem ao princípio “Write Once, Run Anywhere”, em que o código
é compilado uma única vez e pode ser reutilizado em qualquer computador.
A respeito dessas asserções, assinale a opção correta.
A asserção I é uma proposição falsa e a asserção II é uma
proposição verdadeira.
As asserções I e II são proposições verdadeiras, e a II é
uma justificativa correta da I.
A
asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa.
As asserções I e II são proposições falsas.
As asserções I e II são proposições verdadeiras, mas a II
não é uma justificativa correta da I.
Pergunta 4
Analise o código abaixo:
void foo (Automovel a) {
a.locomocao();
}
void bar () {
Conversivel c = new Conversivel();
foo(c);
}
Sabendo que Conversivel é subclasse de Automovel, analise as
afirmações abaixo sobre o código:
I. Na função bar, c é um Automovel.
II. Na função foo, a é um Conversivel.
III. No método bar, o método sendo chamado na primeira linha
é determinado em tempo de compilação.
IV. No método foo, o método sendo chamado na primeira linha
é determinado em tempo de compilação.
São corretas as afirmações:
I e II, apenas.
II e III, apenas.
I e
III, apenas.
III e IV, apenas.
II e IV, apenas.
Pergunta 5
Leia o texto abaixo:
Ao desenvolver um sistema para controlar hidrômetros e
relógios utilizados para registrar o consumo de água, é preciso observar se
estes dois instrumentos possuem características e comportamento comuns. Neste
contexto, o desenvolvedor utilizou alguns conceitos fundamentais da orientação
a objetos, eles se referem à estrutura das classes para reutilização de código
e outros estão relacionados ao chamamento de métodos com mesma assinatura,
considerando as especificidades da operação dos hidrômetros.
Quais foram os conceitos de orientação a objetos
implementados pelo desenvolvedor apresentado no texto acima?
Herança
e polimorfismo.
Abstração e composição.
Composição e agregação.
Agregação e polimorfismo.
Herança e visibilidade.
Pergunta 6
Observe o código a seguir:
class Carregador {
float tensao;
float corrente;
float potencia;
public Carregador() {
// ...
}
public void carregar(Bateria b) {
// ...
}
}
Assinale a afirmação correta sobre o código acima:
Um dos atributos da classe Carregador é “Bateria”.
Existe outra classe chamada “Bateria”.
A classe Carregador sobrecarrega construtores.
Um dos
atributos da classe Carregador é “carregar”.
Um dos métodos da classe Carregador é “corrente”.
Pergunta 7
Leia o texto abaixo:
Um método abstrato define a assinatura de um método, mas não
fornece implementação. Uma subclasse deve fornecer sua própria implementação de
cada método abstrato definido por sua superclasse. Portanto, um método abstrato
especifica a interface do método, mas não a implementação. Embora as classes e
métodos abstratos sejam úteis, podemos levar esse conceito um passo adiante. Em
Java, podemos separar totalmente a interface de uma classe de sua implementação
usando a palavra-chave interface.
Uma interface é sintaticamente semelhante a uma classe
abstrata no fato de podermos especificar um ou mais métodos sem corpo. Estes
métodos devem ser implementados por uma classe para que suas ações sejam
definidas. Quando uma interface é definida, não há limite para o número de
classes que podem implementá-la. Além disso, uma classe pode implementar
qualquer número de interface.
Fonte: SCHILDT, H. Java para iniciantes: crie, compile e
execute programas Java rapidamente, 6ª edição. Porto Alegre: Bookman, 2015
(adaptado).
Considerando as informações apresentadas, assinale a opção
correta.
Uma interface, assim como uma classe abstrata, fornece os
nomes dos métodos e os implementa, conforme indica o texto.
A partir do texto, compreende-se que um programa em Java
pode instanciar uma interface.
A partir do texto, entende-se que as interfaces possuem atributos
assim como as classes.
A
partir do texto, entende-se que uma interface especifica o que deve ser feito,
mas não como deve ser feito.
Segundo o texto, todos os métodos não precisam ser
implementados pela classe que venha a utilizar uma determinada interface.
Pergunta 8
Leia o texto abaixo:
Uma classe na linguagem Java pode ser um tipo de dado usado
pelo programador com a instrução class, ou um objeto já definido em algum
pacote interno da linguagem. Uma classe possui a característica de agregar
objetos, formando um conjunto de objetos (quando houver mais de um objeto
definido em uma determinada classe), os quais possuem características de
armazenamento de dados (seus atributos) e funcionalidades (seus métodos). Uma
classe édeclarada com a instrução class, que possui a seguinte sintaxe:
<qualificador> class [<nome da classe>] {
<lista dos tipos e seus atributos)>
<lista dos métodos>
}
Fonte: MANZANO, J. A. N. G. Java 7: programação de
computadores: guia prática de introdução, orientação e desenvolvimento. São
Paulo: Érica, 2011.
O qualificador é um elemento opcional e quando usado, deve
ser representado por
static ou void.
this.
public, abstract ou final.
int, float, double ou String.
public,
private ou protected.
Pergunta 9
Leia o texto a seguir:
Quando uma classe implementa uma interface, o mesmo
relacionamento “é um” fornecido por herança se aplica. A classe Employee
implementa Payable, assim podemos dizer que um Employee é uma Payable. De fato,
objetos de quaisquer classes que estendem Employee também são objetos Payable.
Os objetos de quaisquer subclasses da classe que implementa a interface também
podem ser pensados como objetos do tipo de interface.
Fonte: DEITEL, H.; DEITEL, P. Java: como programar.
10. ed. São Paulo: Pearson Education do Brasil, 2017, p. 337. Adaptado.
Considerando as informações apresentadas, avalie as
asserções abaixo e a relação proposta entre elas:
I. Existe uma relação de polimorfismo entre uma classe que
implementa uma interface e a interface, isso é, objetos da classe podem ser
tratados como objetos“ da interface”.
PORQUE
II. A relação entre uma classe e uma interface pode ser
utilizada para realizar herança, transmitindo códigos prontos, como métodos,
que podem ser utilizados pelos objetos de suas subclasses, apesar de ser
impossível instanciar objetos de uma interface.
A respeito dessas asserções, assinale a opção correta:
A asserção I é uma proposição falsa e a asserção II é uma
proposição verdadeira
A asserção I e a asserção II são proposições verdadeiras,
mas a II não é uma justificativa correta da I.
A asserção I e a asserção II são proposições verdadeiras, e
a II é uma justificativa correta da I.
A
asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa.
A asserção I e a asserção II são proposições falsas.
Pergunta 10
Leia o texto a seguir:
A maioria das declarações de variável de instância é
precedida pela palavra-chave private. Da mesma forma que public, private é um
modificador de acesso.As variáveis ou métodos declarados com o modificador de
acesso private só são acessíveis a métodos da classe em que isso ocorre.
Fonte: DEITEL, H.; DEITEL, P. Java: como programar.
10. ed. São Paulo: Pearson Education do Brasil, 2017, p. 58.
Considerando as informações apresentadas, avalie as
asserções abaixo e a relação proposta entre elas.
I. O uso de métodos get e set públicos em atributos private
constitui uma violação do encapsulamento da classe.
PORQUE
II. Métodos get e set permitem, respectivamente, ler e
modificar o valor do atributo, e métodos públicos são visíveis para todo o
projeto.
A respeito dessas asserções, assinale a opção correta:
As asserções I e II são proposições verdadeiras, mas a
asserção II não é uma justificativa correta da I.
As asserções I e II são proposições falsas.
A
asserção I é uma proposição falsa e a asserção II é uma proposição verdadeira.
A asserção I é uma proposição verdadeira e a asserção II é
uma proposição falsa.
As asserções I e II são proposições verdadeiras e a asserção
II é uma justificativa correta da I.
Nenhum comentário:
Postar um comentário