Buscar

062209_Discursivas-POO (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Discursivas - POO
QUESTÃO:
1. Na orientação a objetos, na linguagem de programação Java, o Hashmap é um tipo de coleção que permite a busca
de um objeto, por alguma informação que se tenha dele, em uma lista, com maior eficiência. O tipo de coleção
ArrayList permite a busca de um objeto através de uma informação dele, porém a performance do algoritmo é
prejudicada. Neste contexto, implemente uma classe qualquer que adiciona uma lista de objetos a um Hashmap, e no
final, a lista deve ser varrida e impresso algum valor de cada objeto.
Resposta Esperada:*O acadêmico deve criar um objeto do tipo Hashmap, podendo ser de qualquer tipo, conforme linha
11 do código-fonte. Devem ser adicionados objetos a esta lista, conforme linhas 13 e 14, e no final, deve ser impresso na
tela algum valor de cada objeto da lista, como na linha 18.
2. Java é uma linguagem de programação que permite o desenvolvimento de aplicações que rodem ou funcionem em
uma série de plataformas. Devido a essa versatilidade, a linguagem Java conta com três conhecidos ambientes de
desenvolvimento: o JSE (Java Standard Edition), o JEE (Java Enterprise Edition) e o JME (Java Mobile Edition). Nesse
contexto, disserte sobre o ambiente de desenvolvimento JME, explicando a sua aplicabilidade.
Resposta Esperada:
Java Mobile Edition (JME) – provê um conjunto de bibliotecas para a utilização em JVMs em dispositivos menores,
como telefones celulares e microchips. Utiliza um subconjunto das bibliotecas da JSE em combinação com
bibliotecas especialmente desenvolvidas para aplicações em dispositivos menores.
3. Da mesma forma que a linguagem de programação Java oferece comparação de igualdade entre objetos, existe um
mecanismo que permite a definição dos critérios de ordenação para objetos que forem colocados em uma coleção
ordenável. Para realizar tal operação, existem duas interfaces chamadas de Comparable e Comparator. Disserte sobre
as diferenças entre estas duas interfaces e situações específicas de utilização das mesmas.
Resposta Esperada:
A Interface Comparable deve ser implementada pelo objeto que se deseja ordenar. Ela força a implementação do método
compareTo(), que recebe outro objeto do mesmo tipo para comparação de acordo com o critério que se quer definir. A
Interface Comparator deve ser implementada por um objeto externo à operação de ordenação, conhecido como
provider. Este objeto implementa o método compare e recebe dois objetos para serem ordenados de acordo com
determinado critério. Essa implementação é mais adequada quando não se tem acesso às fontes dos objetos a serem
ordenados.
4. Uma linguagem de programação é composta por um vocábulo e um conjunto de regras gramaticais usadas para
escrever programas de computador, sendo que cada linguagem possui suas próprias características e peculiaridades. A
linguagem Java suporta oito tipos básicos, chamados tipos primitivos, que são nomeados por uma palavra-chave.
Considerando os tipos primitivos suportados pela linguagem de programação Java, identifique as palavras-chave
utilizadas para representá-los e também o tipo de dado que cada um permite armazenar.
Resposta Esperada:
* byte: permite armazenar números inteiros.
* short: permite armazenar números inteiros.
* int: permite armazenar números inteiros.
* long: permite armazenar números inteiros.
* +oat: permite armazenar números reais.
* double: permite armazenar números reais.
* char: permite armazenar caracteres com base no código UNICODE.
* boolean: permite armazenar valores lógicos, true ou false.
5. Padrões de projeto são soluções testadas para construir softwares orientados a objetos, utilizando práticas e técnicas
que ajudam a reduzir substancialmente a complexidade e os problemas recorrentes dos processos de desenvolvimento
e design de software. O padrão de projeto Data Access Object (DAO) abstrai e encapsula os mecanismos de acesso a
dados, utilizado para resolver o problema de mapeamento objeto relacional por intermédio de uma camada de
isolamento entre a aplicação e o banco. Por definição, é preciso criar uma interface comum a todas as entidades que
desejarem ser mapeadas para o banco, que estabelecerá as operações que cada uma realizará. Considerando essa
interface comum, cite e descreva as cinco operações que o padrão de projeto DAO define.
Resposta Esperada:
Esta interface deverá incluir as seguintes operações: (i) save; (ii) get; (iii) list; (iv) remove; e (v) update:
(i) salvar um objeto
(ii) obter um objeto
(iii) obter uma lista contendo todos os objetos
(iv) remover um objeto
(v) atualizar um objeto
6. O desenvolvimento de software é uma tarefa árdua e que necessita de muito controle para se obter um produto no
tempo e custo planejados. Além disso, é importante que se analise e projete bem a arquitetura do software,
possibilitando que uma futura manutenção não seja tão trabalhosa, através de código-fonte mais legível e reutilizável.
Neste sentido, o paradigma da orientação a objetos surgiu para evitar muitos problemas existentes na programação
procedural. Disserte sobre como e o porquê a programação orientada a objetos possibilita melhor legibilidade e
reutilização de código-fonte.
Resposta Esperada:
A melhor legibilidade do código-fonte, seguindo as boas práticas da orientação a objetos, ocorre ao se evitar criação de
variáveis indevidas, e principalmente em métodos que possuem uma única responsabilidade, sendo mais específicos e
mais fáceis de se entender. Além disso, a reutilização de código ocorre justamente no uso correto de classes, e métodos
com responsabilidades específicas, por exemplo, um método que realiza um cálculo, e este é chamado (invocado) em
outros pontos do código-fonte. Neste sentido, temos um baixo grau de acoplamento e maior coesão.
7. Assim como outras linguagens de programação, o Java possui uma arquitetura robusta de tratamento de exceções, as
quais são classificadas em verificadas e não verificadas. Uma exceção tratada evita que o programa seja interrompido
em tempo de execução, estourando no usuário, ao invés de ter sido tratado pela própria lógica do programa. Neste
contexto, descreva as diferenças entre exceção verificada e exceção não verificada, e implemente, em linguagem Java,
um pequeno trecho de código-fonte com uma exceção verificada, utilizando os comandos de tratamento de exceção do
Java que você aprendeu.
8. Padrões de projeto são soluções testadas para construir softwares orientados a objetos, utilizando práticas e técnicas
que ajudam a reduzir substancialmente a complexidade e os problemas recorrentes dos processos de desenvolvimento
e design de software. Um padrão de projeto bastante utilizado pelos desenvolvedores é o padrão Singleton, que garante
a existência de apenas uma única instância de uma determinada classe, mantendo uma maneira global de acessá-la.
Considerando a classe "Configuracao" ilustrada na figura anexa, cite e descreva as modificações necessárias para aplicar
o padrão de projeto Singleton a esta classe, de maneira que esta tenha apenas uma instância de si mesma e forneça um
ponto global de acesso a sua instância.
Resposta Esperada :
9. Java é uma linguagem de programação que permite o desenvolvimento de aplicações que rodem ou funcionem em
uma série de plataformas. Devido a essa versatilidade, a linguagem Java conta com três conhecidos ambientes de
desenvolvimento: o JSE (Java Standard Edition), o JEE (Java Enterprise Edition) e o JME (Java Mobile Edition). Nesse
contexto, disserte sobre o ambiente de desenvolvimento JEE, explicando a sua aplicabilidade.
Resposta Esperada :
JEE Plataforma/Ambiente de desenvolvimento voltado para redes, internet, intranets, aplicações de grande escala e
afins. Toma como base o ambiente JSE.
10. O paradigma da programação orientada a objetos (poo) apresenta diversas vantagens com relação aos seus
antecessores, dentre as quais podemos citar especialmente o aumento na manutenibilidade, reusabilidade,
extensibilidade e confiabilidade das aplicações. Disserte sobre a maneira através da qual a poo e suas característicasresultam nestas vantagens.
Resposta esperada:
A manutenção das aplicações ocorre de maneira mais fácil, pois, através do polimorfismo e da alta coesão e baixo
acoplamento, conseguimos alterar partes do código sem influenciar outras. A reusabilidade e a extensibilidade ocorrem
através da herança, em que é possível adotar comportamento igual ou mesmo estender comportamentos escrevendo
poucas linhas de código. A confiabilidade aumenta através da alta coesão e baixo acoplamento das aplicações.
11. O collections framework do Java possui alguns tipos que podem ser comparados com arrays, porém estes possuem
mais recursos, eficiência e vantagens em relação ao array ou vetor normal. Além disso, o collections framework permite
ordenar os objetos através de algum critério desejado, bastando implementá-lo. Um exemplo deste tipo de ordenação
seria por nome, utilizando-se o atributo nome de uma classe Pessoa. Para desenvolver a comparação, deve ser feita a
implementação da interface Comparable na classe desejada, além do método "compareTo". Neste contexto, desenvolva
uma classe qualquer, na linguagem de programação Java, que realize a ordenação de uma lista de objetos através da
interface Comparable. Apresente as duas classes criadas, uma com a implementação da interface Comparable, e a outra
com um exemplo de execução da ordenação de uma lista do objeto do tipo da classe com implementação Comparable.
12. Toda aplicação JavaSE deve ter o que é conhecido como ponto de entrada. Visto que uma aplicação desenvolvida
através do paradigma de programação orientada a objetos é composta por diversas classes, pelo menos uma delas deve
ter a responsabilidade de iniciar o processo de instanciação e troca de mensagens. Considerando o código fonte da
classe Principal mostrada na figura a seguir, crie o código fonte da classe Aluno, sabendo que a matrícula é um inteiro e
que o método calcularMedia() sempre retorna -1, pois sua implementação ainda não foi definida.
Resposta Esperada:
O acadêmico deverá elaborar um código fonte como o da figura, sendo que a ordem dos elementos pode variar sem
problemas e o modificador da classe não precisa ser public, podendo ser default:
13. A comparação de igualdade entre duas instâncias de uma mesma classe pode ser definida na linguagem de
programação Java através do polimorfismo. A sobrescrição do método equals(), existente na classe Object é sinalizada
através da annotation @override e permite que o desenvolvedor defina seus próprios critérios de comparação através
de atributos. Considerando o que foi exposto e a existência de uma classe chamada de Cachorro que possui um atributo
nome, disserte sobre o código fonte da figura a seguir, explicando o que acontece em cada linha.
Resposta Esperada:
Na linha 19 está a anotação override, indicando que estamos usando o polimorfismo. Na linha 20 está a assinatura do
método. Nas linhas 21 e 22 estamos perguntando se a referência com a qual estamos comparando é a mesma. Se for,
logicamente o equals retornará true. Nas linhas 23 e 24 é feita a pergunta se o objeto a ser comparado é null. Se ele
for, o método retorna falso. Nas linhas 25 e 26, é feita a verificação do tipo da classe que está vindo como parâmetro.
Se os tipos forem diferentes, o método retorna falso. Na linha 27, é feita conversão do object para Cachorro, para que
se possa realizar a comparação do nome. Nas linhas 28 a 30, é feita a verificação de nome nulo. Se um dos nomes for
nulo e o outro não, retorna-se falso. Finalmente, a linha 31 pergunta se o nome do objeto atual não é igual ao nome do
objeto que veio como parâmetro. Se os dois forem diferentes, o método retorna falso e, caso a execução não entre em
nenhuma das verificações anteriores, os nomes dos dois objetos são iguais e o método retorna true.
14. Para ser considerada uma linguagem de programação orientada a objetos (poo), a linguagem deve aderir aos
princípios de encapsulamento, herança e polimorfismo, alicerces básicos da teoria da orientação a objetos. Existem
diversas linguagens de programação no mercado que aderem a estes princípios, entre elas c++, Ruby e Phyton. Disserte
sobre três vantagens que a linguagem de programação Java apresenta sobre as demais para o aprendizado da poo.
Resposta Esperada:
O Java segue os três princípios com o rigor adequado, enquanto outras linguagens são mais ?liberais? na aderência e
podem prejudicar o aprendizado da teoria de poo. A sintaxe do Java é semelhante à do c e c++, além de diversas
linguagens de programação existentes no mercado como c# e php terem inspirado seu modelo de funcionamento de
objetos na maneira como o Java trabalha. Aprender Java é facilitar o aprendizado de outras linguagens de programação.
Java é multiplataforma, ou seja, você pode programar em java em qualquer sistema operacional que tenha uma JVM
desenvolvida para o mesmo.

Continue navegando