Prévia do material em texto
Usuário DHONATAS WENDREY DOS REIS
Curso Bloco 2 - CCO04087 PROGRAMAÇÃO ORIENTADA A OBJETOS PNA (ON) -
201910.213.01
Teste ATIVIDADE 2
Iniciado 24/05/19 20:27
Enviado 27/05/19 20:16
Status Completada
Resultado da
tentativa
2,25 em 2,5 pontos
Tempo decorrido 71 horas, 48 minutos
Resultados exibidos Respostas enviadas, Respostas corretas, Comentários
• Pergunta 1
0,25 em 0,25 pontos
Sabemos que, após criadas nossas classes, precisamos elaborar uma relação na qual os objetos
de classes diferentes consigam se comunicar. Essa comunicação é chamada de relação lógica e
pode ser do tipo associação, composição e agregação. Sobre esse tema, analise as afirmações
abaixo:
Associação significa criar uma conexão entre classes, fazendo com que seus objetos tenham
uma relação.
A associação é realizada, após ambos os atributos forem inicializados.
Agregação é utilizada quando uma classe precisa utilizar atributos de outra classe.
Composição é uma variação da relação agregação, sua única diferença se dá pelo fato de que a
classe responsável por criar as outras classes for destruída, as outras classes serão
inutilizáveis.
De acordo com as afirmações apresentadas, assinale a alternativa correta.
Resposta Selecionada: d.
I, II e IV.
Resposta Correta: d.
I, II e IV.
Feedback da
resposta:
A resposta está correta. Aprendemos que a relação de agregação é bem similar à
de composição. Mas, quando destruímos a classe que faz agregação com outra,
não significa destruir essa outra classe. Já na associação, existe uma conexão
entre as classes, entre seus objetos.
• Pergunta 2
0,25 em 0,25 pontos
O Java possui uma API que possibilita agrupar um conjunto de objetos. Dessa forma, por
intermédio de suas interfaces, podemos realizar algumas operações básicas nos objetos
contidos nessa coleção. Estamos falando sobre a API Collections, um conjunto bem modelado de
interfaces e classes, que representam um grupo de objetos de uma mesma unidade. Ou seja,
utilizando coleções, temos acessos a essas interfaces (List, Queue, Map, Set) que possuem em
sua implementação, métodos com operações básicas.
Operações estas que podem ser de inserção, remoção, ordenação e outros.Sobre a API
Collections, marque a alternativa correta.
Resposta Selecionada: c.
Na interface Queue, podemos inserir elementos duplicados
Resposta Correta: c.
Na interface Queue, podemos inserir elementos duplicados
Feedback da
resposta:
A resposta está correta. Todos as implementações, disponíveis pela interface
Queue, permitem que existam elementos duplicados, porém é importante
lembrar que nessa implementação, a ordenação de inserção e remoção dos
elementos segue um padrão do tipo “PILHA”.
• Pergunta 3
0,25 em 0,25 pontos
Quando falamos sobre encapsulamento, podemos achar que encapsular significa apenas ocultar
determinadas informações de implementação. Apesar de ocultar, ser um conceito realizado pelo
encapsulamento, não significa que ocultaremos informações de uma classe para o restante do
código. Na verdade, quando encapsulamos, estamos restringindo o acesso apenas a alguns
atributos e métodos de uma classe/objeto para as outras classes/objetos. Porém, ainda
conseguimos acesso a essas informações ocultas pelos métodos de leitura e escrita.
Sobre encapsulamento, escolha a alternativa correta.
Resposta
Selecionada:
b.
O atributo deverá ser declarado sempre como privado, pois a visibilidade
dele é controlada pelos métodos.
Resposta Correta: b.
O atributo deverá ser declarado sempre como privado, pois a visibilidade
dele é controlada pelos métodos.
Feedback
da resposta:
A resposta está correta. Como vimos, a identificação de visibilidade dos atributos
deve ser projetada, de forma que não danifique o processo lógico do nosso
programa. Precisamos analisar as regras de negócio que envolvem nosso
problema, para evitar possíveis erros. Só devemos declarar como public, se
realmente for necessário.
• Pergunta 4
0,25 em 0,25 pontos
Nosso algoritmo é construído por meio de comando de controle de fluxo e repetições. Sabemos
que, para realizarmos esses comandos, podemos fazer uso das instruções if-else, switch-case,
para tomada de decisões, como também os comandos for, while, do-while, para comandos de
repetições. Vamos analisar o trecho de código abaixo:
class Main {
public static void main(String[] args) {
int cont = 0;
do {
cont = cont+1;
if(num == cont) break;
}
while(num % cont == 0);
System.out.print(cont);
}
}
Qual será a saída do algoritmo?
Resposta Selecionada: a.
5.
Resposta Correta: a.
5.
Feedback da
resposta:
A resposta está correta. Vimos que, quando utilizamos o do-while, garantimos
que as instruções dentro do bloco deverão ser executadas, pelo menos uma
vez. Após isso, é realizado a verificação de condição da estrutura.
• Pergunta 5
0,25 em 0,25 pontos
Sabemos que, na linguagem Java, podemos atribuir o valor de um tipo de variável a outro tipo
de variável. Ou seja, fazemos o casting com as variáveis. Porém, entendemos que, para
realizarmos esse procedimento precisamos obedecer às regras do compilador, de forma que
não ocasione um erro em nosso programa. Utilizamos casting de variáveis, de forma que nos
possibilite declarar variáveis de um tipo de dado mais genérico e fazer essas variáveis
referenciarem objetos de tipos de dado mais específico. Deixando o desenvolvedor com mais
liberdade, quando construir a lógica do seu programa.Sabendo que precisamos obedecer a
regra de conversão, analise as declarações de variáveis abaixo:
int d = (int) 5.1987;
float e = (float) 5.0;
int f = (int) 13.2;
double g = (int) 3.14
Qual das opções abaixo corresponde a um conjunto de impressões das variáveis declaradas?
Resposta
Selecionada:
a.
System.out.println(d); //Imprime 5 e System.out.println(e); //Imprime
5.
Resposta Correta: a.
System.out.println(d); //Imprime 5 e System.out.println(e); //Imprime
5.
Feedback da
resposta:
A resposta está correta. De acordo com as regras de conversões do casting,
quando realizamos uma conversão de uma variável double para int, os valores
numéricos serão convertidos para um número inteiro, ignorando assim os
números após a vírgula.
• Pergunta 6
0 em 0,25 pontos
Sabemos que o paradigma de orientação a objeto nos ajuda a programar de maneira organizada
e resolve vários problemas enfrentados pela programação estruturada. Para programar de
maneira orientada a objeto, fazemos o uso de alguns conceitos. Por exemplo, classe, objetos,
atributos e métodos. Sabendo disso, analise o código abaixo:
class Conta {
public int numero;
private double saldo;
private String nomeCliente;
Conta( ) {
System.out.println("Iniciando conta");
}
public void realizarSaque(double valor) {
this.saldo = this.saldo - valor;
}
public double verSaldo() {
return this.saldo; }
}
class SistemaBanco {
public static void main(String[] args) {
Conta minhaConta = new Conta();
minhaConta.numero = 1;
minhaConta.saldo = 100;
minhaConta.nomeCliente = "Eduardo";
minhaConta.RealizarSaque(10);
System.out.println(minhaConta.verSaldo());
}
}
Qual dasalternativas abaixo é verdadeira?
Resposta
Selecionada:
b.
Não é possível acessar apenas o atributo saldo na função main, pois esse
atributo é privado.
Resposta Correta: c.
Não é possível acessar o atributo saldo e nomeCliente na função main,
pois esses atributos são privados.
Feedback da
resposta:
Sua resposta está incorreta. Sugerimos a releitura do capítulo. A relação de uma
classe com seus objetos deve sugerir quais atributos e comportamentos podem
ser compartilhados e executados em outra classe. Para isso, precisamos saber
identificar qual o tipo dos nossos atributos.
• Pergunta 7
0,25 em 0,25 pontos
Sabemos que, em sua estrutura, a interface Map permite que cada elemento armazene duas
informações. Uma delas será a chave, na qual não poderá ser duplicada, ou seja, apenas um
elemento daquela coleção poderá ter aquela informação. A outra informação é chamada de
valor, essa poderá ser encontrada com a mesma informação em outro elemento da coleção. Para
utilizarmos essa interface, podemos implementar por LinkedHashMap, HashMap ou TreeMap.
O programa abaixo está implementado com HashMap, analise:
public static void main(String[] args){
Map<Integer,String> cliente = new HashMap<Integer,String>( );
cliente.put(123, “Maria”);
cliente.put(452, “João”);
cliente.put(426, “Gabriel”);
cliente.put(147, “Ana”);
String cli = cliente.get(452);
cliente.remove(147);
Boolean verificar = cliente.containsKey(123);
System.out.println(cli);
if(verificar) {
System.out.println(“OK”);
}cliente.clear();
}
Após análise do código, qual das opções abaixo corresponde à execução do código?
Resposta Selecionada: e.
A instrução System.out.println(cli); imprime o valor “João”.
Resposta Correta: e.
A instrução System.out.println(cli); imprime o valor “João”.
Feedback da
resposta:
A resposta está correta. De acordo com a interface Map, utilizando o método
cliente.get do programa e passando como parâmetro a chave 452, o nosso
programa deverá retornar, após realizar a busca na coleção, o valor “João”.
• Pergunta 8
0,25 em 0,25 pontos
Sabemos que, após criadas nossas classes, precisamos elaborar uma relação na qual os objetos
de classes diferentes consigam se comunicar. Essa comunicação é chamada de relação lógica e
pode ser do tipo associação, composição e agregação. Sobre esse tema, analise as afirmações
abaixo:
I. Associação significa criar uma conexão entre classes, fazendo com que seus objetos tenham
uma relação.
II. A associação é realizada, após ambos os atributos forem inicializados.
III. Agregação é utilizada quando uma classe precisa utilizar atributos de outra classe.
IV. Composição é uma variação da relação agregação, sua única diferença se dá pelo fato de
que a classe responsável por criar as outras classes for destruída, as outras classes serão
inutilizáveis.
De acordo com as afirmações apresentadas, assinale a alternativa correta.
Resposta Selecionada: a.
I, II e IV.
Resposta Correta: a.
I, II e IV.
Feedback da
resposta:
A resposta está correta. Aprendemos que a relação de agregação é bem similar à
de composição. Mas, quando destruímos a classe que faz agregação com outra,
não significa destruir essa outra classe. Já na associação, existe uma conexão
entre as classes, entre seus objetos.
• Pergunta 9
0,25 em 0,25 pontos
Uma das características existente na programação orientada a objetos está relacionada com
atribuições específicas quando formos declarar nossas variáveis. Podemos por exemplo,
proteger um atributo interno do objeto contra modificações diretas. Sabemos que essas
alterações devem ocorrer por meio de métodos adequados, criados para acesso e modificação
desses atributos. Podendo ser do tipo private, public ou protect. Por exemplo, public int
idade;private String nome;protect int cpf;
Quando utilizamos POO, podemos definir quais modificadores de acesso melhor se encaixam
com nossos atributos. Quando decidimos colocar o modificar de acesso privado em um atributo,
significa que:
Resposta
Selecionada:
d.
este atributo privado somente é acessível aos objetos que fazem
referência a esta classe;
Resposta Correta: d.
este atributo privado somente é acessível aos objetos que fazem
referência a esta classe;
Feedback da
resposta:
A resposta está correta. Quando declaramos um atributo com a visibilidade de
private, este atributo somente poderá ser acessado pelos métodos internos
desse objeto.
• Pergunta 10
0,25 em 0,25 pontos
Quando vamos desenvolver um programa, sabemos que podemos optar por um dos
dois paradigmas da programação: a Programação Estruturada e a Programação
Orientada a Objetos. Apesar de suas similaridades e diferenças, para realizarmos um
bom programa precisamos analisar qual programação é a mais adequada para aquele
problema em questão. As principais diferenças entres esses paradigmas, é que a PE se
baseia uma ideia de programação mais voltada ao pensamento de máquina, enquanto
a POO se baseia em um pensamento de programação mais voltado ao pensamento
humano.
Nesse contexto, analise as afirmações abaixo e identifique quais correspondem à
programação orientada a objeto.
I. Consistem em identificar os objetos e as operações relevantes
no mundo real.
II. O mapeamento desses problemas em representações abstratas
no espaço de soluções.
III. Os mecanismos que compõem um programa podem ser
identificados como seleção, sequência e iteração.
IV. Não existem objetos, pois são dados, e os dados possuem
comportamentos que são considerados em separado.
Agora, assinale a alternativa que apresenta a sequência correta de respostas.
Resposta Selecionada: a.
V, V, F, F.
Resposta Correta: a.
V, V, F, F.
Feedback
da
resposta:
A resposta está correta. O paradigma de orientação a objeto tenta
retratar os conceitos do mundo real para a programação de uma forma
mais abstrata. Dessa forma aprendemos uma lógica de identificar o que
seriam nossos objetos e quais seriam seus atributos e comportamentos.