wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Avaliação de Desempenho - 2º Bimestre - POO

Total questions: 10

Worksheet time: 5mins

Name
Class
Date
1.

(0,15) A Máquina Virtual Java (JVM) é o componente central da plataforma Java, responsável por executar programas compilados em bytecode. Esse bytecode é independente de hardware e sistema operacional, garantindo portabilidade. A JVM realiza a tradução de bytecodes em instruções nativas por meio do JIT (Just-In-Time compiler), otimizando o desempenho em tempo de execução. Além disso, ela gerencia memória, executa a coleta de lixo (garbage collection) e realiza verificação de segurança do código antes e durante a execução. Considere as afirmações: I. O uso de bytecodes permite que o mesmo programa Java seja executado em diferentes sistemas operacionais. II. A JVM apenas interpreta bytecodes, não sendo capaz de compilá-los para código nativo. III. O coletor de lixo da JVM é responsável por liberar memória de objetos não mais referenciados. IV. A JVM contribui para a segurança da execução, validando o código antes de executá-lo. Assinale a alternativa correta.

a)

I, III e IV, apenas.

b)

I, II, III e IV.

c)

II e IV, apenas.

d)

I e II, apenas.

e)

I e III, apenas.

2.

(0,15) A Programação Orientada a Objetos (POO) é um paradigma amplamente utilizado na construção de sistemas complexos e escaláveis, com mecanismos para estruturar o software de forma modular e reutilizável. Fundamentada em princípios como abstração, encapsulamento, herança e polimorfismo, a POO modela elementos do mundo real em objetos computacionais e estabelece relações hierárquicas entre classes. Pesquisas apontam desafios no ensino desses conceitos; estudos da Sociedade Brasileira de Computação destacam que o domínio de herança e polimorfismo é essencial não apenas para codificação eficiente, mas também para aplicar princípios de design de software, como SOLID, garantindo baixo acoplamento e alta coesão entre componentes. Considerando essas informações, avalie as asserções e a relação proposta entre elas: I. O uso adequado da herança em POO favorece o reuso e a extensibilidade de código, permitindo que subclasses expandam comportamentos de superclasses sem necessidade de alterar a estrutura original, contribuindo para a modularidade e a manutenibilidade do sistema. PORQUE II. A herança define uma relação semântica de especialização entre classes, na qual uma subclasse herda atributos e métodos de uma superclasse. Quando empregada fora de uma hierarquia conceitualmente coerente, para fins puramente de reutilização de código, a herança fere princípios fundamentais de projeto, resultando em acoplamento indevido e comprometendo a coesão do sistema. Assinale a opção correta.

a)

A asserção I é verdadeira, e a II é falsa.

b)

As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.

c)

As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.

d)

A asserção I é falsa, e a II é verdadeira.

3.

(0,15) O Brasil apresenta um quadro histórico de desigualdade regional, que remonta à década de 1950, sendo comumente descrito pela metáfora dos “dois Brasis”: um mais desenvolvido, representado pelas regiões Sul e Sudeste, e outro mais vulnerável, identificado no Norte e Nordeste. Essa heterogeneidade expressa-se não apenas na renda, mas também no acesso a direitos sociais fundamentais, como saúde, educação e igualdade de gênero. Grin et al. (2021) destacam que “o desenvolvimento humano não pode ser reduzido ao crescimento econômico, pois envolve a expansão das capacidades humanas e das liberdades políticas, civis e sociais”. A partir da ótica dos Objetivos de Desenvolvimento Sustentável (ODS), especialmente saúde (ODS 3), educação (ODS 4), igualdade de gênero (ODS 5) e redução das desigualdades (ODS 10), evidencia-se a urgência de políticas públicas diferenciadas para garantir inclusão e equidade territorial. O desafio central é compatibilizar desenvolvimento regional com desenvolvimento humano, em um país marcado por profundas disparidades sociais. Considerando as ideias apresentadas, assinale a alternativa correta:

a)

As desigualdades regionais brasileiras expressam apenas diferenças climáticas e geográficas, não estando relacionadas ao acesso desigual a políticas sociais.

b)

A metáfora da “Belíndia” ilustra a coexistência de regiões com padrões de vida semelhantes aos da Bélgica e outras mais próximas da realidade da Índia, reforçando a dualidade do desenvolvimento nacional.

c)

O enfoque nos ODS 3, 4, 5 e 10 limita a análise do desenvolvimento humano ao âmbito internacional, sem aplicabilidade prática no contexto brasileiro.

d)

O desenvolvimento humano, segundo Grin et al. (2021), é mensurado exclusivamente pelo Produto Interno Bruto, sendo as desigualdades regionais explicadas por fatores econômicos.

e)

A análise das desigualdades regionais propõe a homogeneização de políticas públicas, uma vez que o país apresenta pouca diversidade socioeconômica entre suas regiões.

4.

Analise o código a seguir, que simula um controle de estoque para produtos de um e-commerce, e avalie as asserções apresentadas e a relação proposta entre elas.

I. O encapsulamento da classe Produto assegura que os atributos nome e preco sejam acessíveis apenas por métodos específicos, evitando manipulações externas indevidas e garantindo maior controle sobre os dados armazenados. PORQUE II. O método resetarEstoque(), ao redefinir o atributo quantidadeTotal para zero, faz com que todos os objetos Produto anteriormente criados sejam automaticamente removidos da memória, impedindo o acesso às suas informações previamente armazenadas. A respeito dessas asserções, assinale a opção correta:

a)

As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.

b)

A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.

c)

As asserções I e II são proposições falsas.

d)

As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I.

e)

A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.

5.

Em Java, todos os programas são estruturados a partir de classes, e o encapsulamento e a abstração garantem que os detalhes internos sejam ocultos e a interação ocorra apenas por interfaces públicas. Avalie as assertivas e a relação entre elas: I. O paradigma orientado a objetos favorece a modularidade e a reutilização do código. PORQUE II. O encapsulamento restringe o acesso direto aos atributos, forçando o uso de métodos controlados para manipular o estado interno. A respeito dessas assertivas, assinale a opção correta: a) A assertiva I é verdadeira, e a II é falsa. b) A assertiva I é falsa, e a II é verdadeira. c) As assertivas I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. d) As assertivas I e II são proposições verdadeiras, e a II é uma justificativa correta da I. e) As assertivas I e II são falsas.

a)

A assertiva I é verdadeira, e a II é falsa.

b)

A assertiva I é falsa, e a II é verdadeira.

c)

As assertivas I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I.

d)

As assertivas I e II são proposições verdadeiras, e a II é uma justificativa correta da I.

e)

As assertivas I e II são falsas.

6.

O polimorfismo permite que diferentes classes implementem o mesmo método de formas distintas, via herança ou interfaces. Quais afirmações estão corretas? I. Permite invocar métodos diferentes a partir de uma mesma referência. II. A decisão sobre qual método será executado ocorre em tempo de compilação. III. O uso de interfaces em Java é um exemplo de polimorfismo. IV. Favorece o reuso e a flexibilidade de código. Assinale a alternativa correta: a) I, III e IV, apenas. b) II e IV, apenas. c) I, II, III e IV. d) I e II, apenas. e) III e IV, apenas.

a)

I, III e IV, apenas.

b)

II e IV, apenas.

c)

I, II, III e IV.

d)

I e II, apenas.

e)

III e IV, apenas.

7.

Considere o código-fonte apresentado (classe Animal com método emitirSom imprimindo "Som genérico de animal"; classes Cachorro e Gato estendem Animal e sobrescrevem emitirSom para imprimir, respectivamente, "Latido" e "Miado"; no método main, são criadas as referências Animal a1 = new Cachorro(); e Animal a2 = new Gato(); em seguida, a1.emitirSom(); a2.emitirSom();). Qual será a saída do programa? a) Cachorro / Gato b) Latido / Miado c) Erro de compilação d) Som genérico de animal e) Som genérico de animal / Som genérico de animal

a)

Cachorro / Gato

b)

Latido / Miado

c)

Erro de compilação

d)

Som genérico de animal

e)

Som genérico de animal / Som genérico de animal

8.

Em aplicações Java, o tratamento de exceções é essencial para a estabilidade do sistema. As exceções são tratadas por meio de blocos try, catch e finally; a palavra-chave throw lança uma exceção e throws é usada na assinatura de métodos que podem lançá-las. Considere as afirmações: I. O bloco finally será executado sempre, independentemente de uma exceção ter sido lançada ou não. II. A palavra-chave throw é usada para lançar exceções, enquanto throws é usada na definição de métodos que podem lançar exceções. III. Exceções que herdam de RuntimeException são obrigatoriamente tratadas com try-catch ou lançadas com throws. Quais estão corretas?

a)

Apenas I

b)

Apenas II

c)

I e II, apenas

d)

I e III, apenas

e)

I, II e III

9.

Considerando os princípios da Programação Orientada a Objetos em Java, as boas práticas de encapsulamento e consistência entre objetos, identifique qual implementação do método realizarCompra() melhor representa a aderência aos requisitos de negócio e ao paradigma da POO, assegurando a correta atualização do sistema e a robustez da aplicação. Opções de implementação: a) public boolean realizarCompra(Produto produto, Cliente cliente, int quantidade) { if (produto.getEstoqueProduto() < quantidade) return false; this.codProduto = produto.getCodProduto(); this.codCliente = cliente.getCodCliente(); this.quantidade = quantidade; produto.setEstoqueProduto(produto.getEstoqueProduto() - quantidade); return true; } b) public void realizarCompra(Produto produto, Cliente cliente, int quantidade) { this.codProduto = produto.getCodProduto(); this.codCliente = cliente.getCodCliente(); this.quantidade = quantidade; produto.setEstoqueProduto(produto.getEstoqueProduto() - quantidade); } c) public boolean realizarCompra(Produto produto, Cliente cliente, int quantidade) { if (produto.getEstoqueProduto() >= quantidade && quantidade > 0) { this.codProduto = produto.getCodProduto(); this.codCliente = cliente.getCodCliente(); this.quantidade = quantidade; produto.setEstoqueProduto(produto.getEstoqueProduto() - quantidade); cliente.setCodUltimoPedido(this.codP...) } } Regras de negócio que o método deve cumprir: - Verificar disponibilidade de estoque. - Manter a integridade entre os objetos Cliente e Produto, atualizando o estoque. - Retornar um valor capaz de indicar sucesso ou falha da operação.

a)

a) Implementação que valida o estoque, atualiza os dados e retorna true/false.

b)

b) Implementação que atualiza dados e estoque, mas não retorna resultado.

c)

c) Implementação que valida estoque e quantidade, altera também dados adicionais do cliente e não apresenta caminho explícito de retorno.

10.

Considere o código abaixo. Ao executar o programa, qual será a saída no console:

a)

Erro de compilação, pois o método somar está sobrescrito incorretamente.

b)

5 / 25 / 5.0

c)

4 / 9 / 25

d)

5.0 / 5.0 / 25.0

e)

25 / 5 / 5.0