Buscar

ATIVIDADE 2 - ADS - PROGRAMAÇÃO I - 2019C2

Prévia do material em texto

ATIVIDADE 2 - ADS - PROGRAMAÇÃO I - 2019C2
Período:29/07/2019 08:00 a 16/08/2019 23:59 (Horário de Brasília)
Status:ENCERRADO
Nota máxima:0,50
Gabarito:Gabarito será liberado no dia 17/08/2019 00:00 (Horário de Brasília)
Nota obtida:0,40
1ª QUESTÃO
Em Java, a palavra reservada "this" é utilizada para acessar atributos e métodos da própria instância. A
palavra reservada "super" é utilizada para acessar atributos e métodos da superclasse da própria
instância. 
Considerando o texto acima, avalie as afirmações abaixo.
I – Em Java há também um método Super(), que indica o construtor da superclasse.
II – A palavra "this" referencia a classe atual, tanto para atributos quanto para métodos.
III – É possível utilizar a palavra "this", para chamar um método da superclasse.
IV – É possível utilizar a palavra "super", para chamar um método da classe atual.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
2ª QUESTÃO
Dentro dos métodos de uma classe, o desenvolvedor deve colocar as operações que o método deve
realizar. Além das operações, o desenvolvedor também precisa se preocupar, para não deixar o objeto ficar
em um estado inválido. Um estado inválido não é um erro de compilação ou execução. Um estado inválido
de um objeto pode ser quando algum valor de um atributo guarda um valor que não é adequado à lógica do
seu programa. Observe o código abaixo.
 1 public class CaixaEletronico {
 2 double dinheiro;
 3 
 4 public void depositar(double dinheiro) {
 5 this.dinheiro += dinheiro;
 6 System.out.println("Depósito realizado com sucesso");
 7 }
 8 public void sacar(double dinheiro) {
 9 if (dinheiro > this.dinheiro) {
 10 System.out.println("O caixa não possui essa quantia");
 11 } else {
 12 this.dinheiro -= dinheiro;
 13 System.out.println("Saque realizado com sucesso");
 14 
 15 }
 16 }
 17 
 18 public static void main(String[] args) {
 19 CaixaEletronico caixa = new CaixaEletronico();
 20 caixa.depositar((double) 150);
 21 caixa.depositar ((double) 250);
 22 caixa.sacar((double) 300);
 23 caixa.sacar((double) 300);
 24 }
 25 }
Considerando o texto e o código acima, avalie as afirmações abaixo.
I – Não há necessidade de converter explicitamente os valores inteiros para "double" do jeito que está no
método "main", pois o tipo "double" é maior que o tipo inteiro e ambos são números.
II – O método "depositar" poderia ter uma verificação para a quantidade de dinheiro no caixa não ser maior
que um milhão, supondo que não caberia mais dinheiro na máquina.
III – A verificação no método "sacar" é necessária, pois ela não deixa o objeto ficar em um estado inválido,
que seria uma quantidade de dinheiro negativa.
IV – O código mostrado força o caixa a sempre ter dinheiro, não deixando que tudo seja sacado. Se alguém
tentar sacar todo o dinheiro, a mensagem "O caixa não possui essa quantia" é exibida.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
Atenção! Questão anulada.
ALTERNATIVAS
III, apenas.
I e IV, apenas.
II e III, apenas.
I, III e V, apenas.
I, II, III e IV, apenas.
4ª QUESTÃO
Os métodos das classes são utilizados para realizar operações. Dentro de um método, o desenvolvedor
pode colocar quantos comandos ele quiser. O método pode possuir parâmetros, que são variáveis
passadas para o método no momento em que ele for executar. Um método também pode ou não retornar
um valor para quem o chamou.
Considerando o texto acima, observe o código a seguir e assinale a alternativa correta.
 1 public class Calculadora {
 2 
 3 public static short somar(short a, short b) {
 4 return (short) (a + b);
 5 }
 6 
 7 public static short subtrair(short a, short b) {
 8 return (short) (a - b);
 9 }
 10 
 11 public static short multiplicar (short a, short b) {
 12 return (short) (a * b);
 13 }
 14 
 15 public static short dividir(short a, short b) {
 16 return (short) (a / b);
 17 }
 18 
 19 public static short fazerNada(short a, short b) {
 20 
 21 }
 22 }
ALTERNATIVAS
A classe Calculadora é inválida, pois ela não possui um construtor.
O método "fazerNada" está correto, pois não é obrigatório ter código dentro de um método.
A classe Calculadora deveria obrigatoriamente definir um construtor que receba pelo menos 1 parâmetro.
Os 4 primeiros métodos precisaram converter explicitamente o valor da operação para o tipo "short", pois os
resultados das operações são do tipo inteiro.
Somente nos métodos "somar" e "multiplicar" pode ocorrer um erro. Caso sejam passados valores muito altos e o
resultado for maior do que 32.767, então acontecerá o erro.
5ª QUESTÃO
No contexto da Orientação a Objetos, a herança permite que uma classe herde vários métodos e atributos
de outra classe. Em Java, não existe herança múltipla, portanto, uma classe A pode ter somente uma
superclasse. Entretanto, a superclasse pode também herdar de alguma outra classe. Desta forma, a classe
A, além de herdar os atributos e métodos de sua superclasse direta, herdará também os atributos e
métodos de todas as suas superclasses indiretas.
Exemplo: Se A herda de B, que herda de C e herda de D, então A terá atributos e métodos de todas as
suas superclasses, que são B, C e D.
Considerando o texto acima, assinale a alternativa correta.
ALTERNATIVAS
Uma subclasse pode sobrescrever um método de uma superclasse.
Uma classe não pode ser subclasse e superclasse ao mesmo tempo.
Uma classe pode ser subclasse de duas superclasses ao mesmo tempo.
Uma subclasse consegue acessar qualquer método e qualquer atributo de sua superclasse.
Uma subclasse da classe A pode acessar qualquer método de outra subclasse da classe A.
6ª QUESTÃO
Quando declaramos uma variável, ela é acessível apenas dentro de um determinado escopo. Essa variável
pode ser uma variável de instância, que existe para apenas uma única instância da classe; pode ser uma
variável local, sendo acessada apenas por algum método específico; ou pode ser uma variável de classe,
similar a variáveis globais em outras linguagens, acessível por todas as instâncias de uma determinada
classe. Assinale a alternativa que indica como podemos declarar essa variável em Java.
ALTERNATIVAS
A variável é declarada normalmente, mas fora de qualquer método. Ex: public int num = 5;
A variável é declarada dentro da classe, com o modificador static. Ex: public static int num = 5;
A variável é declarada normalmente, mas antes da declaração da classe. Ex: public int num = 5;
A variável é declarada dentro de um método, mas com o modificador global. Ex: public global int num = 5;
A variável é declarada dentro da classe, com o nome acrescentado de "main.". Ex: public int main.num = 5;
7ª QUESTÃO
Em programas orientados a objeto, normalmente existem várias classes em vários pacotes e elas
interagem entre si. Para utilizar outras classes, tanto as criadas por você quanto as do próprio Java, muitas
vezes é necessário importá-las com o comando "import". Analise as afirmações a seguir:
I – Quando uma classe não utiliza outras classes ou utiliza somente as classes básicas do Java (do pacote
"java.lang"), então não é necessário utilizar o "import".
II - As classes que estão no mesmo pacote podem ser utilizadas, não precisando utilizar o comando
"import".
III – Ao iniciar um novo projeto em Java, é sempre necessária a criação de um novo pacote.
IV – Os pacotes também são conhecidos como Classes Abstratas, pois eles agrupam conjuntos de classes
que possuem um certo relacionamento.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
8ª QUESTÃO
Os construtores são métodos especiais, que são chamados no momentoem que o objeto é criado. Assim
como os métodos, os construtores também podem receber parâmetros. Normalmente, esses parâmetros
servem para inicializar os atributos do objeto. É possível ter vários construtores em uma classe e um
construtor pode chamar outro construtor. Nesse sentido, observe o código abaixo:
 1 public class InstrumentoMusical {
 2 private String nome;
 3 private String som;
 4 
 5 public InstrumentoMusical(String nome) {
 6 this.nome = nome;
 7 som = "Não possui ou está quebrado.";
 8 }
 9 
 10 public InstrumentoMusical(String nome, String som) {
 11 this.nome = nome;
 12 this.som = som;
 13 }
 14 
 15 public InstrumentoMusical(InstrumentoMusical outroInstrumento) {
 16 nome = outroInstrumento.nome;
 17 som = outroInstrumento.som;
 18 }
 19 
 20 public InstrumentoMusical() {
 21 }
 22 } 
Considerando o código acima, avalie as afirmações abaixo.
I – Uma classe pode ter vários construtores, desde que eles não possuam a mesma quantidade de
parâmetros.
II – O terceiro construtor é inválido, pois ele está acessando diretamente os atributos privados de um
objeto. Os atributos privados só podem ser acessados pelo próprio objeto.
III – A classe InstrumentoMusical é válida, mesmo sem o método main.
IV – O último construtor é válido mesmo tendo o corpo vazio.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
9ª QUESTÃO
Muitas vezes, quando uma subclasse é criada, nós temos a intenção de especializar a superclasse. Essa
especialização pode envolver a sobrescrita de métodos da superclasse para que um ou mais métodos
funcione de forma diferente em uma subclasse. A linguagem Java permite a sobrescrita de métodos.
Considerando o texto acima, assinale a alternativa correta.
ALTERNATIVAS
A assinatura de um método é o nome do método.
A sobrescrita de métodos só funciona se houver a anotação "@Override".
Se um método sobrescrito tiver uma quantidade diferente de parâmetros, então, além de sobrescrito, ele é
sobrecarregado.
Se o método A possui a mesma assinatura que o método B e cada um está em uma classe diferente, então eles são
métodos sobrescritos.
Para sobrescrever um método, os dois devem ter a mesma assinatura. Não é possível sobrescrever um método de
uma classe na própria classe.
10ª QUESTÃO
O tipo "boolean" é muito utilizado em Java. As expressões dentro de ifs e whiles sempre resultam em um
valor do tipo "boolean". Também é possível armazenar um tipo "boolean" em uma variável para ser utilizado
posteriormente. Os operadores mais comuns para utilizar com um "boolean" são: "and" (símbolo &&), "or"
(símbolo ||) e negação (símbolo !).
Observe o código abaixo.
 1 public class AcessoRestrito {
 2 
 3 public static void acessar (boolean a, boolean b, boolean c, boolean d)
{
 4 boolean temAcesso = !(a || d) && c && ((a && (!b || d)) || c);
 5 if (temAcesso) {
 6 System.out.println("Sim");
 7 } else {
 8 System.out.println("Não");
 9 
 10 }
 11 }
 12 
 13 public static void main(String[] parametros) {
 14 acessar(true, true, true, true);
 15 acessar(true, false, true, false);
 16 acessar(false, true, true, false);
 17 acessar(false, true, false, true);
 18 acessar(false, false, false, false);
 19 }
 20 }
Considerando o texto e o código acima, assinale a alternativa correta.
ALTERNATIVAS
O programa imprime: Sim, Não, Não, Não, Sim.
O programa imprime: Não, Sim, Sim, Não, Não.
O programa imprime: Não, Não, Sim, Não, Não.
O programa imprime: Sim, Sim, Sim, Não, Não.
O programa imprime: Não, Não, Sim, Sim, Sim.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes