Baixe o app para aproveitar ainda mais
Prévia do material em texto
14/08/2021 Unicesumar - Ensino a Distância 1/7 ATIVIDADE 2 - PROGRAMAÇÃO I - 53/2021 Período:02/08/2021 08:00 a 20/08/2021 23:59 (Horário de Brasília) Status:ABERTO Nota máxima:1,50 Gabarito:Gabarito será liberado no dia 21/08/2021 00:00 (Horário de Brasília) Nota obtida: 1ª 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. 2ª QUESTÃO Herança é um mecanismo da orientação a objetos que permite criar novas classes a partir de classes já existentes, que características comuns a diversas classes sejam fatoradas em uma classe base ou superclasse. A partir de uma classe base, outras classes podem ser especificadas. Cada classe derivada ou subclasse apresenta as características (estrutura e métodos) da classe base e acrescenta a elas o que for definido de particularidade. RICARTE, Ivan Luiz Marques. Programação Orientada a Objetos: Uma Abordagem com Java. Campinas: UNICAMP, 2021 O uso de herança pode otimizar o tempo de desenvolvimento das aplicações orientadas a objetos devido ao reaproveitamento de código. Quanto a herança Java é correto o que se afirma em: ALTERNATIVAS 14/08/2021 Unicesumar - Ensino a Distância 2/7 Uma subclasse precisa se tornar uma superclasse para poder implementar, para isso é preciso que se derive uma subclasse a partir dela. A subclasse implementa a superclasse, acrescentando novos membros (atributos e/ou métodos). A superclasse permanece inalterada, motivo pelo qual este tipo de relacionamento é normalmente referenciado como herança estrita. A superclasse especifica o que uma subclasse deve oferecer, mas não implementa nenhuma funcionalidade. A subclasse escreve somente o que não for aproveitar da superclasse. Pode realizar sobrecargas de métodos da superclasse. Os métodos de uma superclasse não podem ser sobrescritos nas subclasses, porém, podem ser sobrecarregados. 3ª QUESTÃO As estruturas de seleção também são chamadas de estruturas de decisão, pois são expressões lógicas que representam uma decisão para que um bloco de código seja executado. A interpretação da condição lógica possibilita ao desenvolvedor saber quais cenários serão executados dependendo dos valores de variáveis e o resultado da expressão. if (1==2) { x=0; } else { x=1; } Com base na sua interpretação do código, qual será a resposta do Java quando tentar compilar o programa que tiver este trecho de código: ALTERNATIVAS A variável 'x' pode ser atribuída com valor zero; Irá ocorrer erro porque não existe uma condição válida; Irá ocorrer erro porque não existe uma variável na expressão do ‘if’; A variável 'x' pode ser atribuída com qualquer valor; A variável 'x' sempre será atribuída com valor um; 4ª QUESTÃO No Java, não basta criar as classes, atributos e métodos, e tudo funcionará bem. É importante atentar-se às diretivas e pacotes do projeto, pois dependendo de como todos esses elementos estão dispostos, o programador pode não conseguir ter acesso à alguns membros. Observe com atenção os trechos de código abaixo: 14/08/2021 Unicesumar - Ensino a Distância 3/7 Assinale a alternativa que informa o que ocorrerá quando o código for executado. ALTERNATIVAS 14/08/2021 Unicesumar - Ensino a Distância 4/7 O código roda normalmente. O código roda normalmente e exibe o texto "Nome: Paulo; Idade: 30". O código roda normalmente e exibe o texto "Pessoa Aprovada" na saída. O código dá um erro em tempo de programação, pois a classe "PessoaBusiness" não possui um construtor. O código dá um erro em tempo de programação, pois a classe "PessoaBusiness" encontra-se em um pacote diferente da classe "Principal" e não visualiza o método "aprovarPessoa". 5ª QUESTÃO Com o aumento dos desenvolvedores, foi necessário criar convenções que possuem o objetivo principal de padronizar os códigos de forma que facilite a compreensão. Com base nos estudos do Javabean na linguagem Java é correto afirmar: ALTERNATIVAS Um Javabean se caracteriza por ter todos os atributos public e os métodos private Para que se possa adotar um padrão Javabean é necessário que exista um construtor que receba todos os atributos Usando o padrão Javabean, o desenvolvedor deverá chamar o atributo diretamente sempre que referenciar a instância do objeto em qualquer local Um Javabean dever ter um construtor sem parâmetros, todos os seus atributos private e cada atributo dever ter um correspondente getAtributo e setAtributo Um Javabean dever ter um construtor sem parâmetros, todos os seus atributos private e cada atributo dever ter um correspondente getAtributo e setAtributo precedidos por private 6ª QUESTÃO 14/08/2021 Unicesumar - Ensino a Distância 5/7 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. 7ª QUESTÃO 14/08/2021 Unicesumar - Ensino a Distância 6/7 Na programação da linguagem Java temos dois tipos de variáveis, primitivos ou complexos. Há diferentes formas de declaração paratipos primitivo e complexos, é importante entender o reconhecimento da classificação identificando a forma que é declarada, isto nos garante uma assertividade nas operações subsequentes. Sendo assim, assinale a alternativa que corresponde corretamente a declaração de variável de tipo primitivo em Java: ALTERNATIVAS char tamanho; int 3num; float pi; double false; boolean nome; 8ª QUESTÃO Conforme o entendimento das variáveis foi avançando, foi possível entender que o escopo de uma variável na linguagem Java possibilita o uso de uma mesma informação em vários lugares, assim como o reaproveitamento do próprio nome da variável, facilitando a compreensão do programa de uma forma mais clara. Com base neste estudo responda a alternativa correta sobre o escopo de variável na linguagem Java: ALTERNATIVAS Uma variável pode somente ter o escopo definido no início do programa (class), assim facilita o desenvolvedor a organizar o seu código As variáveis podem ter dois tipos de escopo definido (global e local), e para definir uma variável local deve preceder a variável com a palavra reservada private. O uso de uma variável global deve ser feito de maneira controlada pois ela diminui a segurança do programa e infringe a LGPD. Uma variável estática não pode ser alterada. Uma variável de instância e a variável estática devem ser declaradas dentro de uma classe, mas fora dos métodos. 9ª QUESTÃO Quando se desenvolve um programa existe dois problemas básicos que se deseja solucionar, as condições que são resolvidas pelas estruturas de seleção e a escala que são resolvidas pelas estruturas de repetição. Com base nesta afirmação e seus estudos na linguagem Java, assinale a alternativa correta. ALTERNATIVAS Estruturas de seleção tratam aspectos booleanos (verdadeiro/falso), quanto as estruturas de repetição somente realizam contagem de dados. Uma estrutura for, faz uma contagem automática da quantidade de vezes que o bloco de código é executado, e não faz nenhuma condição para finalizar Uma estrutura while, não pode realizar contagem de execuções, somente a estrutura for. A estrutura do while obrigatoriamente executa uma vez o código contido no seu bloco, e pode ou não executar mais vezes dependendo da condição contida no while. Uma estrutura IF pode conter um bloco de instrução quando a condição for verdadeira, mas deve obrigatoriamente ter um bloco instrução quando a condição for falsa. 14/08/2021 Unicesumar - Ensino a Distância 7/7 10ª QUESTÃO "Polimorfismo significa várias (poli) formas (morfo). Em Orientação a Objetos, polimorfismo é a capacidade pela qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação, mas que possuem comportamentos distintos". Adaptado de: JUNIOR, E. A. O.; NOEL, A. A. Programação I. Maringá: Unicesumar, 2018. Considerando o texto anterior, assinale a alternativa correta. ALTERNATIVAS Um método sobrescrito em Java só utiliza polimorfismo se houver antes a anotação "@Override". Nem sempre que há polimorfismo há herança, mas sempre que há herança, há também polimorfismo. Polimorfismo é a capacidade da subclasse de utilizar métodos da superclasse, sem precisar redefini-los. Para sobrescrever um método, a assinatura do método deve ser exatamente a mesma utilizada na superclasse. Em Java, podemos escrever dois métodos com o mesmo nome, desde que possuam parâmetros de entrada diferentes. Isso é chamado de reescrita de métodos.
Compartilhar