Baixe o app para aproveitar ainda mais
Prévia do material em texto
1O 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){ (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 - F - F - V. B F - F - V - V. C V - V - V - F. D V - V - F - V. 2Os 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 V - V - F - F. B V - V - V - F. C F - F - V - V. D F - V - F - F. 3 Na linguagem de programação Java existem vários métodos e classes, que nos auxiliam em várias áreas, sendo uma delas a parte de cálculos (como do número pi, do número de euler), no cálculo de funções trigonométricas (senos, cossenos, tangentes etc.) e outras funcionalidades. Sobre a classe/metódo “Math.Pow(i, j)”, analise as sentenças a seguir: I – É um método da linguagem Java que calcula i elevado a j. II – É um método da classe Math que calcula i elevado a j. III – É um método que multiplica i por j. IV – É um método que calcula o resto da divisão. V – É um método que retorna o inteiro de uma divisão Assinale a alternativa CORRETA: A As sentenças I e II estão corretas. B As sentenças I e IV estão corretas. C As sentenças II e V estão corretas. D As sentenças I e III estão corretas. 4 Encapsular, basicamente, significa ocultar. No caso específico do Java, são marcados com modificadores de visibilidade os atributos, métodos ou classes que desejamos encapsular. São quatro os modificadores de visibilidade da linguagem de programação Java. Considerando esses modificadores, assinale a alternativa INCORRETA: A Default: o modificador default é implementado simplesmente não colocando nenhum modificador na frente da classe, atributo ou método. B Public: fornece acesso dentro da aplicação onde estiver declarado, no caso de classes, atributos ou métodos. Quando marcamos uma classe como public, queremos dizer que esta será visível a todas as demais classes da aplicação. C Private: fornece acesso somente dentro da classe onde estiver declarado, no caso de atributos ou métodos. D Protected: este modificador indica que o método será visível na subclasse de um relacionamento de herança. 5Como regra geral, os atributos de uma classe devem ser ocultos dos demais objetos do sistema, com o objetivo de garantir o encapsulamento. Entretanto, caso algum destes atributos deva ser exposto, existem vários tipos de exposição, através dos métodos getters e setters. Com relação à utilização dos getters e setters em uma classe, classifique V para as sentenças verdadeiras e F para as falsas: I- Os métodos getters fornecem acesso de escrita a um atributo. II- Os métodos setters permitem que se altere o valor de um atributo de um objeto. III- Uma das vantagens dos setters é que se pode fazer a chamada dos mesmos sem instanciar o objeto onde eles estão. IV- Os métodos setters sempre devem retornar o valor que acabaram de passar ao atributo. Agora, assinale a alternativa CORRETA: A Somente a sentença IV está correta. B Somente a sentença II está correta. C As sentenças I e III estão corretas. D As sentenças III e IV estão corretas. 6Uma das principais vantagens em se desenvolver um software utilizando o paradigma da orientação a objetos, é a reutilização de código-fonte, tornando-o mais legível e fácil de realizar manutenção. Neste sentido, podemos exemplificar a facilidade de manutenção com a necessidade de criar uma coluna em uma tabela, gravando um valor fixo. Neste caso, basta alterar o método que realiza a inserção de registro nesta tabela, e o software está alterado, mesmo que o método seja invocado por mais de uma classe. Analise o código-fonte a seguir e classifique V para as sentenças verdadeiras e F para as falsas: ( ) Devido à herança, a linha 31 está correta. ( ) A classe "Carro" herda o método "getNomeModelo()" da classe "Veiculo". ( ) A classe "Veiculo" herda os métodos com modificador "public" da classe "Carro". ( ) Ocorre uma relação de herança entre as duas classes, sendo que a classe "Carro" herda atributos e métodos da classe "Veiculo". Assinale a alternativa que apresenta a sequência CORRETA: A F - V - F - F. B V - V - F - V. C V - V - V - F. D V - F - F - V. 7A utilização de classes abstratas permite uma maior confiabilidade na definição da hierarquia de herança, pois possui características especiais que impedem sua utilização de forma errônea por outros desenvolvedores. Considerando que as palavras sublinhadas na figura a seguir representam erros de compilação, classifique V para as sentenças e F para as falsas: ( ) Bastaria colocar a palavra reservada abstract na frente da palavra class para resolver todos os problemas da classe. ( ) Uma classe abstrata pode possuir métodos concretos. ( ) Somente classes abstratas podem possuir métodos abstratos. ( ) O primeiro método imprime() deve receber um parâmetro de qualquer tipo para que seu erro de compilação seja corrigido. Agora, assinale a alternativa que apresenta a sequência CORRETA: A V - V - F - V. B V - V - F - F. C V - F - F - V. D F - V - V - F. 8O polimorfismo é um mecanismo poderoso da programação orientada a objetos, pois permite que se adicionem novas funcionalidades a um software sem alterar partes desse mesmo software que já estejam funcionando. Com relação ao polimorfismo, classifique V para as sentenças verdadeiras e F para as falsas: ( ) O polimorfismo de sobreposição consiste na colocação de novos parâmetros em outro método que possua o mesmo nome de um método já existente. ( ) O polimorfismo paramétrico é altamente dependente da linguagem de programação, por este motivo nem todas as linguagens de programação orientadas a objetos o implementam. ( ) A sobrecarga permite redefinir completamente um método, substituindo-o nas classes que fizerem uso deste tipo de polimorfismo. ( ) As interfaces são uma maneira eficiente de implementar opolimorfismo. Agora, assinale a alternativa que apresenta a sequência CORRETA: A V - F - F - V. B V - V - F - V. C V - V - V - F. D F - V - F - V. 9Java é 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. Agora, assinale a alternativa CORRETA: A As sentenças I e II estão corretas. B As sentenças II e III estão corretas. C Somente a sentença II está correta. D Somente a sentença I está correta. 10De acordo com o paradigma da programação orientada a objetos, o relacionamento de herança difere-se do relacionamento de associação especialmente pela definição dos tipos envolvidos. Considerando a figura a seguir, classifique V para as sentenças verdadeiras e F para falsas: ( ) O relacionamento mais adequado entre Personagem e Gladiador é o de herança. ( ) Um Personagem tem uma arma, o que caracterizaria um relacionamento de associação. ( ) Se Personagem está associado a uma arma e Gladiador é subclasse de Soldado, necessariamente Gladiador tem uma arma. ( ) O relacionamento mais adequado entre Gladiador e Soldado é o de associação. Agora, assinale a alternativa que apresenta a sequência CORRETA: A V - V - F - F. B F - V - F - F. C V - F - F - V. D V - V - V - V.
Compartilhar