Baixe o app para aproveitar ainda mais
Prévia do material em texto
01/06/2022 17:12 Avaliação II - Individual 1/7 Prova Impressa GABARITO | Avaliação II - Individual (Cod.:739605) Peso da Avaliação 1,50 Prova 48768774 Qtd. de Questões 10 Acertos/Erros 7/3 Nota 7,00 A coesão é a característica que faz com que uma classe tenha somente uma responsabilidade dentro do sistema, o que faz com que a sua correção, em caso de erros ou a manutenção em caso de evolução, seja simplificada. No que se refere à coesão de uma classe, assinale a alternativa CORRETA: A A coesão, embora seja uma característica importante, não auxilia o encapsulamento de uma classe. B Se uma classe tiver uma e somente uma responsabilidade, a probabilidade de esta sofrer manutenção diminui. C Uma classe coesa é, necessariamente, uma classe com alto acoplamento. D Tanto a coesão quanto o encapsulamento são obtidos na linguagem de programação Java através do modificador de acesso private. Java é uma linguagem de programação interpretada orientada a objetos desenvolvida na década de 90 por uma equipe de programadores. Observe a figura anexa que ilustra uma situação típica em que podemos aplicar o conceito de herança de classes em Java. Considerando os conceitos de programação orientada a objetos, analise as sentenças a seguir: I- A classe FormaGeometrica, indicada pela letra A, é considerada a superclasse das classes contidas na área indicada pela letra B. II- Quadrado é uma classe filha da classe FormaGeometrica. III- O método enfatizado pela letra C, calcularArea(), está sobrescrevendo a implementação da superclasse de Triangulo. IV- A classe FormaGeometrica também é conhecida na linguagem Java como JGF. VOLTAR A+ Alterar modo de visualização 1 2 01/06/2022 17:12 Avaliação II - Individual 2/7 Agora, assinale a alternativa CORRETA: A As sentenças I e IV estão corretas. B As sentenças I, II e III estão corretas. C Somente a sentença III está correta. D As sentenças II e IV estão corretas. O paradigma da orientação a objetos aplicada no desenvolvimento de software possui a vantagem de tornar o código-fonte reutilizável, mais legível, e fácil de realizar manutenção. O polimorfismo permite que outras classes representem o comportamento de classes que elas referenciam. Com relação às classes criadas no código-fonte, analise as sentenças a seguir: (1)public class Veiculo { (2) public void parar(){} (3)} (4) (5)public class Motocicleta extends Veiculo{ (6) public void parar(){ (7) System.out.println("Parando a motocicleta!!"); (8) } (9)} (10) (11)//Veiculo utilitario esporte (SUV: Sport Utility Vehicle) (12)public class Suv extends Veiculo{ 3 01/06/2022 17:12 Avaliação II - Individual 3/7 (13) public void parar(){ (14) System.out.println("Parando o veículo utilitário!!"); (15) } (16)} (17) (18)public class Principal { (19) public static void main(String[] args){ (20) Veiculo veiculo1 = new Motocicleta(); (21) Veiculo veiculo2 = new Suv(); (22) (23) veiculo1.parar(); (24) veiculo2.parar(); (25) } (26)} I- Apesar do código-fonte não lidar com classes abstratas, existe o polimorfismo implementado entre as classes do exemplo. II- Ao executarmos a classe Principal, ocorrerá um erro designando que a instância da classe Veiculo nas linhas 20 e 21 são inválidas, pois recebem a instância de classes de outro tipo (Motocicleta e Suv). III- A classe Veiculo referencia o comportamento das classes Motocicleta e Suv, e ao executarmos a classe Principal, será impresso primeiramente a mensagem (Parando a motocicleta!!) e depois (Parando o veículo utilitário!!). IV- As classes Motocicleta e Suv referenciam o comportamento da classe Veiculo, e ao executarmos a classe Principal, será impresso primeiramente a mensagem (Parando o veículo utilitário!!) e depois (Parando a motocicleta!!). Assinale a alternativa CORRETA: A As sentenças II e IV estão corretas. B As sentenças I e III estão corretas. C As sentenças I e II estão corretas. D As sentenças III e IV estão corretas. A herança, juntamente ao encapsulamento, o polimorfismo e a abstração, representa um dos pilares da programação orientada a objetos e pode, quando bem modelada e utilizada, diminuir o esforço na manutenção do código-fonte. Considerando o relacionamento de herança entre duas ou mais classes, classifique V para as sentenças verdadeiras e F para as falsas: ( ) A herança possibilita o compartilhamento de atributos entre uma superclasse subclasse, limitando esse compartilhamento para os atributos indicados com o modificador "private". ( ) A palavra-chave extends define que uma classe está estendendo outra, que em outras palavras significa o uso de herança na linguagem de programação Java. ( ) A herança possibilita o compartilhamento de métodos entre uma superclasse subclasse, limitando esse compartilhamento para alguns tipos especiais de métodos. ( ) A herança de métodos é possível, porém os métodos construtores podem ser reescritos através do polimorfismo. Assinale a alternativa que apresenta a sequência CORRETA: A F - F - V - V. 4 01/06/2022 17:12 Avaliação II - Individual 4/7 B V - F - F - V. C V - V - V - F. D F - V - F - F. Diz-se que no paradigma da orientação a objetos, os objetos podem criar relações entre si, e duas maneiras de se estabelecer uma relação entre objetos são através da associação e da herança que devem ser utilizados na solução de problemas diferentes. Sobre esses relacionamentos, analise as sentenças a seguir: I- Quando um relacionamento de associação é estabelecido entre duas ou mais classes, significa que os objetos dessas classes estão relacionados, de alguma maneira, no mundo real. II- Nos relacionamentos de associação, o conceito de superclasse é utilizado de maneira diferente do que nos relacionamentos de herança. III- Os relacionamentos do tipo "associação" são implementados na linguagem de programação Java através das palavras reservadas "associate to". IV- Um relacionamento que responde de maneira positiva à pergunta "é um tipo de" representa uma herança. Assinale a alternativa CORRETA: A As sentenças I e IV estão corretas. B As sentenças II e IV estão corretas. C As sentenças I e III estão corretas. D As sentenças II e III estão corretas. A sobrecarga de métodos, considerada um tipo de polimorfismo, é um mecanismo que permite que dois ou mais métodos compartilhem o mesmo nome, contanto que tenham diferentes conjuntos de parâmetros. Dessa forma, com o código-fonte apresentado, referente à classe Bicicleta e a sintaxe aplicada ao polimorfismo de sobrecarga para os dois métodos construtores da referida classe, assinale a alternativa CORRETA: public class Bicicleta{ private char tamanhoQuadro; private int numeroMarchas; private char tamanhoRoda; public void movimentar(){ System.out.println("O objeto bike está em movimento!!"); } } A public Bicicleta(){ } public Bicicleta(char tamanhoQuadro){ this.tamanhoQuadro = tamanhoQuadro; } B public Bicicleta(){ } public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){ this.tamanhoQuadro = numeroMarchas; this.numeroMarchas = tamanhoQuadro; this.tamanhoRoda = tamanhoRoda; } 5 6 01/06/2022 17:12 Avaliação II - Individual 5/7 C public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){ this.tamanhoQuadro = tamanhoQuadro; this.numeroMarchas = numeroMarchas; } public Bicicleta(char numeroMarchas){ this. numeroMarchas = numeroMarchas; } D public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){ this.tamanhoQuadro = tamanhoQuadro; this.numeroMarchas = numeroMarchas; this.tamanhoRoda = tamanhoRoda; } public Bicicleta(){ this.tamanhoRoda = tamanhoRoda;; } O encapsulamento ajuda a diminuir o acoplamento entre os objetos de um sistema, pois prega que somente o que é absolutamente necessário deve ser exposto aos demais. Com relação ao encapsulamento, assinale a alternativa CORRETA:A O alto acoplamento é positivo, pois permite que os objetos se comuniquem com mais facilidade. B Para fazer uso do encapsulamento, basta modificarmos a visibilidade de nossos atributos. C Métodos também podem ser ocultados, no sentido de garantir um maior encapsulamento. D Um bom cidadão é um objeto que tem todos os valores de seus atributos preenchidos no momento da instanciação. O conceito de classes abstrata, através de suas características especiais, fornece ao conceito de herança uma maior confiabilidade uma vez que as classes modeladas com herança precisam ser melhor idealizadas e projetadas. Dessa forma, avalie o código-fonte da classe Atleta, a seguir, e classifique V para as sentenças verdadeiras e F para as falsas: package fontes; public class Atleta{ private int pais; private String modalidade; private boolean medalistaOlimpico; public abstract void competir(String modalidade) { System.out.println("É especialista em " + modalidade); } public void competirPor(int pais){ System.out.println("O atleta compete por " + pais); } } ( ) A classe em questão não apresenta problemas de sintaxe. ( ) O método competirPor(int pais) está gerando erro de sintaxe e usa incorretamente a palavra- chave void. ( ) O método competirPor(int pais) possui um retorno de tipo definido. ( ) O método "competir(String modalidade)" não gera erro de sintaxe e usa a palavra-chave abstract corretamente. Assinale a alternativa que apresenta a sequência CORRETA: A F - F - V - V. 7 8 01/06/2022 17:12 Avaliação II - Individual 6/7 F F V V. B V - F - V - V. C F - F - F - F. D V - V - V - V. A utilização do recurso de Pacotes em Java permite uma melhor organização do código-fonte, além de permitir que duas ou mais classes tenham o mesmo nome em pacotes diferentes. Juntamente com eles, o uso dos modificadores de visibilidade compõe uma fórmula poderosa no tocante à definição de segurança e encapsulamento de um programa ou aplicação. Sobre a utilização de modificadores de visibilidade na linguagem de programação Java, classifique V para as sentenças verdadeiras e F para as falsas: ( ) O modificador "default", aplicado para uma classe, permite o acesso a essa classe por uma classe de outro pacote através do comando import. ( ) O modificador "default", definido para um método contido em uma classe pública, impede que o método seja acessado por outra classe criada em outro pacote. ( ) O modificador "private", definido para um método contido em uma classe com o modificador "default", não impede que o método seja acessado por outra classe criada no mesmo pacote. ( ) O modificador "public", definido para um método contido em uma classe pública, elimina qualquer tipo de restrição de acesso ao método, mesmo que ele seja acessado em uma classe criada em outro pacote. Assinale a alternativa que apresenta a sequência CORRETA: A F - F - F - F. B V - F - F - V. C F - V - F - V. D V - V - V - F. Por intermédio da herança, um dos pilares da programação orientada a objetos, é possível reaproveitarmos características e comportamentos já implementados em outras classes sem a necessidade de realizar a cópia de código-fonte. Com relação a esse conceito, classifique V para as sentenças verdadeiras e F para as falsas: ( ) Em uma superclasse, para acessar métodos da subclasse deve ser usada a instrução super. ( ) A implementação de herança múltipla em Java não é possível. ( ) Para definirmos um relacionamento de herança entre classes utilizamos a palavra reservada "derives". ( ) Uma subclasse herda os métodos da superclasse, entretanto, pode ter seus próprios métodos. Agora, assinale a alternativa que apresenta a sequência CORRETA: A V - F - F - V. B F - F - V - V. 9 10 01/06/2022 17:12 Avaliação II - Individual 7/7 C F - V - F - V. D V - V - V - F. Imprimir
Compartilhar