Buscar

Programação Orientada a Objetos FAESA 01

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 18 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 18 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 9, do total de 18 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

Prévia do material em texto

Questão 1) - 1,00 ponto(s)
A linguagem Java é, nativamente, orientada a objetos e isso faz com que ela seja uma linguagem com estrutura robusta e consideravelmente segura quanto à proteção de acesso aos seus recursos internos como métodos e atributos. Por padrão, assim como em outras linguagens, métodos e atributos declarados já surgem com o modo de visibilidade e manipulação do tipo default, ou seja, mesmo que o programador não especifique uma restrição modificadora específica, um apontamento padrão já é realizado. É possível, todavia, realizar a alteração desses modificadores de acesso de acordo com os tipos de métodos ou atributos que estejam em manipulação pelo programador. É uma recomendação da própria linguagem que mesmo aqueles métodos ou atributos que não precisem de um modificador, recebam-no de forma explícita, tanto para atender aos padrões de desenvolvimento, quanto para garantir que a intenção deliberada do programador quanto às propriedades de acesso e modificação de recursos seja, de fato, aquela apontada no código.
 
Nesse ínterim, considere que você está participando de um processo seletivo promovido por uma empresa de desenvolvimento de software. Outros colegas, também programadores Java, estão participando desse mesmo processo seletivo e, ao final das etapas de teste e verificação de conhecimentos, apenas um programador será efetivado pela empresa. Na etapa atual, o desafio proposto pela empresa é criar algumas classes que devem, entre si, compartilhar determinadas informações, trafegando dados por meio de seus métodos. Para demonstrar sua capacidade plena de lidar com modificadores de acesso, em todos os membros de uma classe específica, você utilizou
A)
o modificador private, de forma que apenas as classes filhas (herdeiras) possam ter acesso ao conteúdo declarado dentro da classe principal.
B)
o modificador private para garantir que nenhuma outra classe, nem mesmo as herdeiras, tenham acesso aos métodos e atributos da classe em questão.
C)
o modificador protected, que garante acesso aos métodos e atributos apenas a classes que estejam em pacotes externos ao pacote da classe trabalhada.
D)
o modificador public, de forma que apenas as classes herdeiras tenham total acesso aos recursos dispostos no escopo da classe em questão.
E)
o modificador public ou default, garantindo que seus membros sejam acessíveis apenas a classes presentes no mesmo pacote que a classe-pai.
Questão 2) - 1,00 ponto(s)
A principal motivação para criação da linguagem Java foi a necessidade de uma linguagem independente de plataforma, que pudesse ser usada na criação de software embutido em vários dispositivos eletrônicos domésticos, como torradeiras, fornos de micro-ondas e controles remotos. Como era de se esperar, muitos tipos de CPUs são usados como controladores.
 
O problema era que na época a maioria das linguagens era projetada para ser compilada para um destino específico. Por exemplo, considere C++. Embora fosse possível compilar um programa C++ para quase todo tipo de CPU, isso requeria um compilador C++ completo destinado a uma CPU específica.
 
O problema, no entanto, é que é caro e demorado criar compiladores. Em uma tentativa de encontrar uma solução melhor, Gosling e outros trabalharam em uma linguagem com portabilidade entre plataformas, que pudesse produzir código para ser executado em várias CPUs com ambientes diferentes. Esse esforço acabou levando à criação da linguagem Java.
 
SCHILDT, Herbert. Java para iniciantes: crie, compile e execute programas Java rapidamente. 6. ed. Porto Alegre: Grupo A, 2015 (adaptado).
 
Com base no texto lido, analise a situação a seguir.
 
Ricardo está trabalhando em um projeto para criação de um robô para ajudar no atendimento de uma grande rede de supermercados. Os códigos que serão utilizados pelo robô estão sendo implementados na linguagem Java. Inicialmente, Ricardo criou a classe “Robo”, mostrada a seguir.
 
Considerando a classe “Robo” criada por Ricardo, avalie as afirmações a seguir.
 
I. Ricardo pode instanciar um objeto da classe Robo com o seguinte código “Robo robo = new Robo("CA-01","Caixa");”.
 
II. Ricardo, conforme o código apresentado, pode fazer uso de uma sobrecarga de construtores na construção de objetos.
 
III. Os objetos criados por Ricardo devem possuir todos os atributos da classe, conforme o código apresentado.
 
É correto o que se afirma em
A)
I, apenas.
B)
I, II e III.
C)
II, apenas.
D)
I e III, apenas.
E)
II e III, apenas.
Questão 3) - 1,00 ponto(s)
Um método pode ser redefinido em uma subclasse somente se o método é acessível na superclasse. Se o método não é acessível na superclasse, então o método na subclasse não sobrescreve o método na superclasse, mesmo que ele tenha a mesma assinatura. Quando um método é invocado durante a execução, o sistema tem que considerar a acessibilidade do método ao decidir qual implementação do método deve ser executada. 
ARNOLD, Ken, GOSLING, James, HOLMES, David. A linguagem de programação Java. 4 ed. Porto Alegre: Bookman, 2007.
 
Analise o trecho de código abaixo, responsável pela criação da classe AbstractTeste.
 
 
Neste contexto, com base nas informações supracitadas, analise as asserções a seguir.
 
I. Pri e pac são métodos do tipo privado.
II. Pri, pac, pro e pub são métodos invocados pelo método show.
III. O método show invoca cada um desses métodos para o objeto atual.
IV. A instrução {print(“AbstractTest.pri()”;} imprime o conteúdo do método pri.
É correto o que se afirma em
A)
I, II, III e IV.
B)
I, III e IV, apenas.
C)
II e IV, apenas.
D)
I e II, apenas.
E)
I, II e III, apenas.
Questão 4) - 1,00 ponto(s)
Os métodos, também chamados de funções ou procedimentos em algumas linguagens, ajudam a modularizar um programa, separando suas tarefas em unidades independentes. Você declarou métodos em todos os programas que escreveu. As instruções que ficam no corpo dos métodos são escritas apenas uma vez, ficam ocultas dos outros métodos e podem ser reutilizadas em vários lugares em um programa. Embora a maioria dos métodos seja executada em resposta a chamadas de método em objetos específicos, nem sempre esse é o caso. Às vezes, um método executa uma tarefa que não depende do conteúdo de nenhum objeto. Tal método se aplica à classe na qual é declarado como um todo e é conhecido como método estático ou método de classe.  
DEITEL, Paul; DEITEL, Harvey; DEITEL, Abbey. Android: como programar.  2 ed. Porto Alegre:  Bookman, 2015.
 
Com base no texto supracitado, analise as asserções a seguir.
 
I. Dividir um programa em métodos torna-o mais difícil de ser depurado e mantido.
II. Um motivo para modularizar um programa com métodos é evitar repetição de código.
III. Um motivo para modularizar um programa com métodos é a reutilização de software.
IV. Um motivo para modularizar um programa com métodos é a facilidade de manejar o desenvolvimento de programas.
V. É possível criar programas principalmente a partir de métodos padronizados, em vez de desenvolver código personalizado.
 
É correto o que se afirma em
A)
II e III, apenas.
B)
I, II, III, IV e V.
C)
II, IV e V, apenas.
D)
II, III, IV  e V, apenas.
E)
I e II, apenas.
Questão 5) - 1,00 ponto(s)
No âmbito dos princípios de concepção e programação orientada a objeto, é correto afirmar que "um objeto da subclasse é um objeto da superclasse, ou seja, os objetos da subclasse podem ser tratados como objetos da superclasse". Esta afirmação é possível quando se refere ao contexto de
A)
polimorfismo.
B)
herança.
C)
encapsulamento.
D)
reutilização.
E)
abstração.
Questão 6 - (Enade, 2011) ) - 1,00 ponto(s)
A programação orientada a objeto não é apenas uma forma de programar, é também um jeito de pensar em um problema utilizando conceitos do mundo real e, não somente conceitos computacionais.
Considerando os conceitos da programação orientada a objetos, analise as afirmações abaixo.
I. O objeto tem determinadas propriedades queo caracterizam e que são armazenadas no próprio objeto. As propriedades de um objeto são chamadas de instâncias.
II. As mensagens são informações enviadas ao objeto para que ele se comporte de uma determinada maneira. Um programa orientado a objetos em execução consiste em envios, interpretações e respostas às mensagens. São os métodos, os procedimentos residentes nos objetos, que determinam como eles irão atuar ao receber as mensagens.
III. A herança é um mecanismo para o compartilhamento de métodos e atributos entre classes e subclasses, permitindo a criação de novas classes através da programação das diferenças entre a nova classe e a classe-pai.
IV. O encapsulamento é um mecanismo que permite o acesso aos dados de um objeto somente através dos métodos desse. Nenhuma outra parte do programa pode operar sobre os dados do objeto. A comunicação entre os objetos é feita apenas através de troca de mensagens.
É correto apenas o que afirma em
A)
III e IV.
B)
I e II.
C)
I, II e IV.
D)
I e III.
E)
II, III e IV.
Questão 7) - 1,00 ponto(s)
Em uma dada classe, as classes que são estendidas e as interfaces que são implementadas são coletivamente chamadas de supertipos, e, do ponto de vista dos supertipos, uma nova classe é um subtipo. A nova classe inclui todos os seus supertipos, de modo que a referência a um objeto do subtipo possa ser usada polimorficamente em qualquer lugar onde uma referência a um objeto de qualquer de seus supertipos é requerida. Declarações de interfaces criam nomes de tipos, assim como fazem as declarações de classes. É possível usar o nome de uma interface como o nome de tipo de uma variável, e qualquer objeto cuja classe implemente esta interface pode ser atribuída a esta variável.
 
ARNOLD, Ken; GOSLING, James; HOLMES, David. A Linguagem de Programação Java. 4. ed. Porto Alegre: Bookman, 2009.
Uma interface é declarada usando a palavra-chave interface, fornecendo um nome à interface e relacionando os membros da interface entre chaves. Desta forma, uma interface pode declarar como tipos de membros
I. os membros do tipo objetos.
II. os membros do tipo métodos.
III. os membros do tipo constantes.
IV. os membros do tipo classes e interfaces aninhadas.
É correto o que se afirma em
A)
II e IV, apenas.
B)
I, II, III e IV.
C)
I, III e IV, apenas.
D)
II, III e IV, apenas.
E)
I e II, apenas.
Questão 8) - 1,00 ponto(s)
A sobrescrita (ou override) está diretamente relacionada à orientação a objetos, mais especificamente com a herança. Com a sobrescrita, conseguimos especializar os métodos herdados das superclasses, alterando o seu comportamento nas subclasses por um mais específico. A sobrescrita de métodos consiste basicamente em criar um novo método na classe filha contendo a mesma assinatura e mesmo tipo de retorno do método sobrescrito. Dizer que o método deve possuir a mesma assinatura significa dizer que o método deve possuir o mesmo nome, a mesma quantidade e o mesmo tipo de parâmetros utilizado no método sobrescrito.
 
VIDOLIN, Marcos. Sobrescrita e Sobrecarga de métodos em Java. DevMedia, Rio de Janeiro, 2011. Disponível em: https://www.devmedia.com.br/sobrescrita-e-sobrecarga-de-metodos-em-java/22603. Acesso em: 17 maio 2021 (adaptado).
 
Diante disso, considere a situação a seguir.
Humberto, analista de uma grande empresa de tecnologia da informação, é líder de um projeto para a construção de um novo ambiente virtual de aprendizagem. No ambiente construído, professores e alunos poderão avaliar comentários e materiais postados. Contudo, o método de avaliação do aluno difere do método de avaliação do professor. Com base nisso, Humberto implementou os seguintes códigos de teste, todos dentro do mesmo pacote:
 
Com a execução desses códigos, pode-se afirmar que serão impressos na tela
A)
Avaliação da classe Aluno
Avaliação da classe Aluno
Avaliação da classe Aluno
Avaliação da classe Professor
B)
Avaliação da classe Pessoa
Avaliação da classe Aluno
Avaliação da classe Pessoa
Avaliação da classe Professor
C)
Avaliação da classe Pessoa
Avaliação da classe Aluno
Avaliação da classe Aluno
Avaliação da classe Professor
D)
Avaliação da classe Pessoa
Avaliação da classe Aluno
Avaliação da classe Aluno
Avaliação da classe Pessoa
E)
Avaliação da classe Pessoa
Avaliação da classe Aluno
Avaliação da classe Pessoa
Avaliação da classe Aluno
Questão 9) - 1,00 ponto(s)
O C# (C Sharp) é considerado uma linguagem de programação e foi criado pela Microsoft, juntamente com a plataforma de desenvolvimento .NET Framework (pronuncia-se dotNet). Posteriormente, o C# foi aprovado pelo padrão ECMA. A linguagem do C# foi projetada para a Common Language Infrastructure (CLI) da Microsoft. O C Sharp permite o desenvolvimento de softwares robustos e é bastante utilizado por desenvolvedores em diversas partes do mundo. Ele é uma linguagem de programação orientada a objetos, por isso favorece ao programador a implementação de um sistema através de um código bem estruturado, que otimiza a manutenção, quando necessário.
 
LEDUR, C. L. Desenvolvimento de sistemas com C#, Porto Alegre : SAGAH, 2018 (adaptado).
 
 
Considere que Marcos é um profissional de TI e está criando uma aplicação em C# para gestão de funcionários. Sobre os especificadores de acesso utilizados por Marcos durante o desenvolvimento, julgue os itens a seguir.
I. Durante o desenvolvimento do software, Marcos utilizou o especificador de acesso private, o nível de acesso dele é pouco flexível, com isso, os membros dele não podem ser acessados fora da classe.
 
II. Para implementar o sistema, Marcos usou o especificador de acesso denominado protected; nele, o nível de acesso fica limitado na classe ou na estrutura e também na classe herdada (derivada) dessa classe especificada como protected.
 
III. Ao criar o software desejado, Marcos usou o modificador de acesso conhecido como public, ele é um modificador de acesso que, por questão de segurança, é  pouco utilizado no C#. Com ele, os objetos e membros podem ser acessados de qualquer local, ou seja, não existe restrição de acessibilidade.
 
 
É correto o que se afirma em
A)
II e III, apenas.
B)
I, II e III.
C)
I e II, apenas.
D)
III, apenas.
E)
I, apenas.
Questão 10) - 1,00 ponto(s)
Classes aninhadas podem ser declaradas dentro de outras classes e interfaces, seja como membros, seja dentro de blocos de código. Essas classes aninhadas e essas interfaces aninhadas podem ter várias formas diferentes, cada qual com suas próprias propriedades. Um tipo aninhado é considerado uma parte de seu tipo envolvente, e os dois compartilham um relacionamento de confiança no qual cada um pode acessar os membros do outro. Diferenças entre tipos alinhados dependem de o tipo aninhado ser uma classe ou uma interface, e de o tipo envolvente ser uma classe ou uma interface.  
ARNOLD, Ken; GOSLING, James; HOLMES, David. A linguagem de programação Java. 4 ed. Porto Alegre: Bookman, 2007.
Desta forma, sobre os tipos aninhados, analise as asserções a seguir.
 
I. Tipos aninhados estáticos permitem estruturação simples de tipos.
II. Tipos aninhados estáticos não podem acessar outros membros de seu tipo envolvente.
III. Tipos aninhados estáticos servem como mecanismo de estruturação e escopo para tipos logicamente relacionados.
IV. Tipos aninhados não estáticos definem um relacionamento especial entre objeto aninhado e objeto da classe que o contém.
É correto o que se afirma em
A)
I, III  e IV, apenas.
B)
II e IV, apenas.
C)
I, II e IV, apenas.
D)
I, II, III e IV.
E)
I e II, apenas.

Continue navegando