Baixe o app para aproveitar ainda mais
Prévia do material em texto
26/06/2023, 18:55 Avaliação II - Individual about:blank 1/8 Prova Impressa GABARITO | Avaliação II - Individual (Cod.:825701) Peso da Avaliação 1,50 Prova 66141414 Qtd. de Questões 10 Acertos/Erros 8/2 Nota 8,00 Os modificadores de acesso possuem o objetivo de tornar classes, métodos ou atributos visíveis ou invisíveis, facilitando o seu encapsulamento. Com estes modificadores, podemos, por exemplo, liberar o acesso de um atributo de uma classe X por uma classe Y. Analise o código-fonte a seguir e classifique V para as sentenças verdadeiras e F para as falsas: ( ) O método "getCodigo()"da classe "Carro" é visível em todas as classes do pacote. ( ) O método "getCodigo()"da classe "Carro" é visível somente na subclasse de um relacionamento de herança. ( ) O método "getValor()"da classe "Carro" é visível somente na subclasse de um relacionamento de herança. ( ) O método "getModelo()"da classe "Carro" é visível somente dentro da própria classe "Carro". Assinale a alternativa que apresenta a sequência CORRETA: A F - F - V - V. B F - V - F - F. C V - V - F - F. D V - V - V - F. VOLTAR A+ Alterar modo de visualização 1 26/06/2023, 18:55 Avaliação II - Individual about:blank 2/8 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{ (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 I e III estão corretas. B As sentenças II e IV estão corretas. C As sentenças I e II estão corretas. D As sentenças III e IV estão corretas. 2 26/06/2023, 18:55 Avaliação II - Individual about:blank 3/8 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 II e IV estão corretas. B As sentenças I e III estão corretas. C As sentenças I e IV estão corretas. D As sentenças II e III estão corretas. 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 subclasse das classes contidas na área indicada pela letra B. II- Quadrado é uma classe filha da classe FormaGeometrica. III- A classe Triangulo implementa a interface FormaGeometrica. 3 4 26/06/2023, 18:55 Avaliação II - Individual about:blank 4/8 Agora, assinale a alternativa CORRETA: A As sentenças I e II estão corretas. B Somente a sentença II está correta. C Somente a sentença I está correta. D As sentenças II e III estão corretas. 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 "Competidor" e classifique V para as sentenças verdadeiras e F para as falsas: (1) package fontes; (2) public class Competidor{ (3) private int pais; (5) private String modalidade; (6) private boolean medalistaOlimpico; (7) (8) public void competir(String modalidade){ (9) System.out.println("É especialista em " + modalidade); (10) } (11) (12) public abstract void competirPor(int pais){ 5 26/06/2023, 18:55 Avaliação II - Individual about:blank 5/8 (13) System.out.println("O atleta compete por " + pais); (14) } (15) (16)} ( ) Existe um erro de sintaxe na linha (2) que é resolvido adicionando-se a palavra-chave "abstract", antes da palavra chave "Class". ( ) O método "competir(String modalidade)" está gerando um erro de sintaxe, e adicionando a palavra chave "abstract", antes da palavra-chave "void", resolverá o erro gerado. ( ) O método "competirPor(int pais)" está gerando um erro de sintaxe, resolvido eliminando-se a sua implementação, deixando-se apenas a sua assinatura. ( ) O método "competirPor(int pais)" está gerando um erro de sintaxe, e adicionando a palavra- chave abstract, antes da palavra- chave "Class", além de eliminar a sua implementação, deixando-se apenas a sua assinatura, resolverá o erro gerado. Assinale a alternativa que apresenta a sequência CORRETA: A V - V - V - F. B F - F - V - V. C V - F - F - V. D V - V - F - V. 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 correta sintaxe aplicada ao polimorfismo de sobrecarga para os dois métodos construtores da referida classe, classifique V para as sentenças verdadeiras e F para as falsas: public class Bicicleta{ private char tamanhoQuadro; private int numeroMarchas; private char tamanhoRoda; public void movimentar(){ System.out.println("O objeto bike está em movimento!!"); } } ( ) public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){ this.tamanhoQuadro = tamanhoQuadro; this.numeroMarchas = numeroMarchas; this.tamanhoRoda = tamanhoRoda; } public Bicicleta(char tQuadro, int nMarchas){ this.tamanhoQuadro = tQuadro; this.numeroMarchas = nMarchas; } 6 26/06/2023, 18:55 Avaliação II - Individual about:blank 6/8 ( ) public Bicicleta(intnumeroMarchas, char tamanhoRoda, char tamanhoQuadro){ this.numeroMarchas = numeroMarchas; this.tamanhoQuadro = tamanhoQuadro; this.tamanhoRoda = tamanhoRoda; } public Bicicleta(char roda){ this.tamanhoRoda = roda; } ( ) public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){ this.tamanhoQuadro = tamanhoQuadro; this.tamanhoRoda = tamanhoRoda; } public Bicicleta(char tamanhoQuadro, int numeroMarchas){ this.tamanhoQuadro = tamanhoQuadro; this.numeroMarchas = numeroMarchas; this.tamanhoRoda = tamanhoRoda; } ( ) public Bicicleta(){ this.numeroMarchas = numeroMarchas; } public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){ } Assinale a alternativa que apresenta a sequência CORRETA: A V - F - F - V. B V - V - F - F. C F - V - V - F. D F - V - F - V. 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. 7 26/06/2023, 18:55 Avaliação II - Individual about:blank 7/8 Assinale a alternativa que apresenta a sequência CORRETA: A F - F - V - V. B V - V - V - F. C V - F - F - V. D F - V - F - F. A linguagem de programação Java permite a definição de classes abstratas, que representam ferramentas poderosas na definição de relacionamentos de herança e, consequente, reutilização e extensão de estado e comportamento. Com relação às classes abstratas da linguagem de programação Java, classifique V para as sentenças verdadeiras e F para as falsas: ( ) Uma classe abstrata somente pode ser instanciada a partir de um construtor abstrato. ( ) Uma classe abstrata não pode possuir métodos concretos. ( ) Os métodos concretos de uma classe abstrata podem ser reutilizados, sem alteração em suas subclasses. ( ) Em uma hierarquia de herança, a primeira classe abstrata deve prover implementação para os métodos abstratos. Agora, assinale a alternativa que apresenta a sequência CORRETA: A V - V - F - F. B F - F - V - F. C V - V - F - V. D V - F - F - V. 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 F - V - F - V. B V - V - V - F. C V - F - F - V. 8 9 26/06/2023, 18:55 Avaliação II - Individual about:blank 8/8 D F - F - V - V. Uma das principais características da orientação a objetos é a possibilidade de ocultar partes do código de um objeto, chamada de encapsulamento. Com o encapsulamento, cada parte do código- fonte é menor e independente de outras partes, isto é, cada método é específico, realizando uma única operação, tornando o código-fonte mais reutilizável e legível. Com relação ao encapsulamento, assinale a alternativa CORRETA: A A interface exposta de uma classe, se alterada para privada, encapsulada, não requer cuidado para os métodos chamadores. B Ao ocultar detalhes do código-fonte, aumenta-se o acoplamento. C O encapsulamento permite a instância de uma classe em memória. D O encapsulamento evita que alguma entidade externa altere os valores dos atributos de um objeto indevidamente. 10 Imprimir
Compartilhar