Prévia do material em texto
ESTUDOS DISCIPLINARES LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS 1 A JVM é uma camada que se encontra entre a aplicação e o sistema operacional, onde a classe da aplicação é interpretada, sendo traduzida para o sistema operacional sem que haja envolvimento direto com o mesmo. Torna-se sua execução segura e previne-se interferências em outras aplicações caso ocorra algum erro. Neste contexto assinale a alternativa correta: A - Bytecodes Java possibilitam a tecnologia “escreva uma vez, execute em qualquer lugar”. JUSTIFICATIVA: Em linguagem Java, o código-fonte de uma aplicação é compilado em um conjunto de instruções denominado bytecodes Java. A JVM é uma máquina virtual responsável por interpretar esses bytecodes e enviar as diretrizes de execução ao sistema operacional. Devido a esse mecanismo, aplicações Java são independentes da plataforma, ou seja, podem ser executadas em quaisquer arquiteturas de hardware ou sistema operacional, desde que este possua uma JVM. 2 Em Java podemos entender que: I - Quando a JVM julgar necessária, ela vai compilar o código que é muito executado para instruções nativas da plataforma, tendo em vista que isso vai provavelmente melhorar a performance da sua aplicação. II - A tecnologia que a JVM utiliza para detectar pontos quentes da sua aplicação: código que é muito executado, provavelmente dentro de um ou mais loops. As afirmações acima se referem correta e respectivamente a: A - JIT – Just inTime Compiler e Hotspot. JUSTIFICATIVA: O compilador Just-In-Time (JIT) é um componente do Java Runtime Environment, responsável pela compilação em tempo de execução de uma aplicação Java. Quando um método é chamado, o compilador JIT compila os bytecodes do método em código de máquina nativo e a Java Virtual Machine (JVM) chama diretamente esse código compilado em vez de interpretá-lo, melhorando, assim, a performance da aplicação. Quando uma aplicação é executada pela primeira vez, a JVM executa-a em modo interpretado e, conforme o código é executado, este é analisado para detectar os trechos mais executados. Através dessa análise, a HotSpot providencia a compilação das partes mais críticas do código e deixa de compilar o código raramente utilizado a fim de aumentar a performance da aplicação. 3 Em Java, toda variável tem um tipo que não pode ser mudado uma vez que declarado. Sobre os tipos de variáveis em sua relação com os tipos numéricos, textuais e operadores aritméticos pode-se afirmar que: A - O tipo double é utilizando para números em notação de ponto flutuante normalizada em precisão dupla de 64, diferentemente do tipo float, cuja notação de ponto flutuante é normalizada em precisão simples de 32 bits. JUSTIFICATIVA: Lançado pela Oracle Corporation em março de 2019, o documento “The Java Language Specification”, capítulo 4, subcapítulo 2, estabelece que os valores dos tipos float e double são número de pontos flutuantes de 32bits e de 64 bits, respectivamente. 4 Em relação aos tipos de dados em Java, podemos afirmar que: I - O tipo short é um inteiro de 8 bits em notação de complemento de dois que pode assumir valores entre -128 e 127 . II - O tipo int é um inteiro de 32 bits em notação de complemento de dois, sendo o tipo mais usado em Java para números inteiros. III - O tipo float é utilizando para números em notação de ponto flutuante normalizada em precisão dupla de 64, diferentemente do tipo double, cuja notação de ponto flutuante é normalizada em precisão simples de 32 bits. IV - Número com ponto flutuante deve ser armazenado em uma variável do tipo double. V - Bolean é utilizado para armazenar somente variáveis do tipo verdadeira. A - A alternativas II e IV estão corretas. JUSTIFICATIVA: Lançado pela Oracle Corporation em março de 2019, o documento “The Java Language Specification”, capítulo 4, subcapítulo 2, seção 1, estabelece que os valores do tipo byte são inteiros no intervalo de -128 a 127. Estabelece ainda, no subcapítulo 2, que os tipos primitivos de ponto flutuante são float e double. 5 Observe as asserções abaixo, considerando os conceitos de Encapsulamento e Herança: I - Uma classe herda os métodos, porém não os atributos. II - É o processo de esconder os detalhes de um objeto que não contribuem para as suas características essenciais. III - Esse princípio forma a base para uma técnica significativa de representação explícita de elementos comuns. IV - Uma classe herda todos os atributos e métodos da classe mãe, incluindo os privados, porém não consegue acessá-los diretamente. V - Uma classe herda os atributos da classe mãe, mas não os métodos. Assinale a alternativa correta: A - As alternativas II e IV estão corretas. JUSTIFICATIVA: O Encapsulamento tem como objetivo controlar o acesso aos atributos e métodos de uma classe, proteger os dados manipulados dentro da classe e determinar onde esta classe será poderá ser manipulada. Os modificadores de acesso são padrões de visibilidade de acesso aos atributos e métodos. Os membros de uma classe definidos como private não podem ser acessados por nenhuma outra classe, no entanto, uma classe-filha poderá manipular os membros private de sua classe-mãe através de métodos protected. 6 À propósito de Herança e Polimorfismo, analise as afirmações abaixo: I - Tem como característica principal o fato de que a partir dela não poderá ser feito nenhum tipo de instância. II - Capacidade de um objeto poder ser referenciado de várias formas. III - Possuem na sua declaração um ou mais métodos que obrigatoriamente não possuem corpo. IV - Uma classe herda todos os atributos e métodos da classe mãe, incluindo os privados, porém não consegue acessá-los diretamente. V - Uma classe herda todos os atributos e métodos da classe mãe, incluindo os privados, além de acessá-los diretamente. Sobre tais informações é correto dizer que: A - As alternativas II e IV estão corretas. JUSTIFICATIVA: O polimorfismo tem como objetivo permitir que atributos e métodos de uma classe-mãe possam ser implementados de diversas formas em suas classes-filhas. Os modificadores de acesso são padrões de visibilidade de acesso aos atributos e métodos. Os membros de uma classe definidos como private não podem ser acessados por nenhuma outra classe, no entanto, uma classe-filha poderá manipular os membros private de sua classe-mãe através de métodos public ou protected. 7 No que tange Orientação a Objetos, sabe-se que: I - Objetos com estrutura e comportamento diferentes são agrupados em classes. II - Dois objetos são distintos mesmo que eles apresentem exatamente as mesmas características. III - Um objeto é um conjunto de atributos primitivos tipados contido em uma classe. IV - Linguagens orientadas a objeto permitem reduzir custos de desenvolvimento e manutenção. V - Diante da forma como são projetados os recursos do software, é possível atingir a minimização na reutilização. A - As alternativas II e IV estão corretas. JUSTIFICATIVA: Um objeto é uma entidade do mundo real que possui uma identidade, ou seja, cada objeto é distinto de qualquer outro objeto. Aplicações desenvolvidas em linguagens de programação orientadas a objetos possuem desenvolvimento mais rápido por disporem de recursos mais sofisticados, como a herança e o polimorfismo. Além disso, contam com melhor manutenibilidade por possuírem design mais fácil e maior reaproveitamento de código. Esses fatos acarretam a redução de custos de desenvolvimento e manutenção de aplicações produzidas em LPOO. 8 Sobre os conceitos de orientação a objetos, considere as assertivas abaixo: I - Os objetos passivos são aqueles que não são mais necessários, sendo apagados para liberar memória. II - Objetos são instâncias de uma classe que herdam os atributos e as operações da classe. III - As mensagens trabalham em resposta aos métodos e manipulam os valores das varáveis de instância. IV - Operações, métodos ou serviços fornecem representações dos comportamentos de uma classe. V - Superclasse é uma especialização de um conjunto de classes relacionadas a ela. Assinale a resposta correta:A - As alternativas II e IV estão corretas. JUSTIFICATIVA Um objeto é uma entidade concreta de uma classe específica que possui características ou estados (atributos) e capacidades ou funções (operações). Uma classe é um conjunto de especificações para a construção de um objeto. Nela estão contidos não apenas os comportamentos (métodos) que um objeto poderá possuir, como também suas propriedades (atributos). 9 Em relação aos Modificadores de Acesso é correto afirmar: I - Quando nenhum especificador de acesso é usado, então por default o membro de uma classe é privado dentro do seu próprio package. II - Quando um membro de uma classe é especificado como private, este membro somente pode ser acessado por outros membros de sua classe. III - Quando um membro de uma classe é especificado como default, este membro somente pode ser acessado por outros membros de sua classe. IV - Quando um membro de uma classe é especificado como public, este membro pode ser acessado por qualquer parte do código do programa. V - Quando um membro de uma classe é especificado como public, este membro somente pode ser acessado por outros membros de sua classe. A - As alternativas II e IV estão corretas. JUSTIFICATIVA Lançado pela Oracle Corporation em março de 2019, o documento “The Java Language Specification”, capítulo 6, subcapítulo 6, seção 1, estabelece que atributos, métodos e construtores private só podem ser acessados por membros de suas próprias classes; já aqueles public podem ser acessados por qualquer parte do programa. 10 Tendo como base Orientação a Objetos, analise as afirmações abaixo: I - Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação e mesmo comportamento. II - Na herança cada classe derivada (subclasse) apresenta as características (estrutura e métodos) da classe base (superclasse) e acrescenta a elas o que for definido de particularidade para ela. III - Encapsulamento forma a base para uma técnica significativa de representação explícita de elementos comuns. IV - Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos. V - Em uma aplicação que utiliza herança múltipla, uma superclasse deve herdar atributos e métodos de diversas subclasses. Todas as linguagens de programação orientadas a objeto permitem herança múltipla. Assinale a alternativa correta: As alternativas II e IV estão corretas. JUSTIFICATIVA: A herança é um princípio que permite a criação de novas classes (subclasses) a partir de outra previamente criada (superclasse), ou seja, a superclasse detém os atributos e métodos comuns a todas as subclasses e cada uma destas possui atributos e métodos inerentes. Um objeto é uma instância de uma classe. Uma vez instanciado o objeto, este possuirá as características ou estados e capacidades ou funções da classe a qual pertence e da superclassse, se for o caso. Objetos instanciados são entidade concretas, por isso, são capazes de se relacionar entre si.