Prévia do material em texto
ATIVIDADE 2 (A2) Respostas: Questão 1 Texto da questão “A herança também é, às vezes chamada de relacionamento do tipo ‘é um’. A razão é que uma subclasse é uma especialização de uma superclasse. A s classes que herdam são referidas como classes-filhas ou subclasses.”. (BARNES, D. J.; KOLLING, M. Programação orientada a objetos em Java. Editora Pearson Prentice Hall. São Paulo, 2004. p. 208.). A orientação a objetos contém diversas nomenclaturas que devem estar muito claras para os desenvolvedores. Neste sentido, analise os conceitos fundamentais de herança na orientação a objeto a seguir e associe-os com suas respectivas definições. (1) Ancestral. (2) Subtipo. (3) Superclasse. (4) Descendente. ( ) Toda classe que aparecer abaixo da superclasse. ( ) Classe que está na hierarquia acima da superclasse. ( ) Classes que herdam de outras classes. ( ) Classes que fornecem a herança. Agora, assinale a alternativa que apresenta a resposta correta. a. .1, 3, 4, 2. b. .4, 1, 3, 2. c. .2, 1, 3, 4. d. .3, 2, 1, 4. e. .4, 1, 2, 3. Questão 2 Texto da questão "Classes servem de modelo para a criação dos objetos, é onde é definida toda a estrutura e comportamento de um objeto. Os objetos então são gerados a partir de classes. A identificação de um objeto ocorre segundo suas características(atributos) e comportamentos(métodos). Na modelagem de sistemas, um objeto é qualquer coisa existente no mundo real. Atributos é como são chamadas as características ou propriedades de um objeto. Estes identificam o estado de um objeto e representam uma abstração do tipo de dados do mesmo, e conforme aumenta o número de atributos, mais fácil é de identificar este objeto.". (ZENZELUK, J. H.; RIBEIRO, S. Um estudo para a evolução do PHP com a linguagem Orientada a objetos. Revista Científica Semana Acadêmica, Fortaleza, v. 3, n. 1, 2014.). É fundamental conhecer os conceitos e definições de orientação a objeto, principalmente as palavras chave. Quais as definições abaixo compõem as definições das classes em orientação a objeto? I. Public. II. Procedure. III. Private. IV. Section. V. Class. É correto o que se afirma em: a. .I, III e V. b. .I, II e V. c. .II, III e IV. d. .II, IV e V. e. .I, IV e V. Questão 3 Texto da questão “Ao utilizar herança não apenas podemos reutilizar métodos da classe pai, como também podemos sobrescrever os métodos da classe pai, fazendo assim com que algumas características sejam modificadas. Basicamente, por exemplo podem ser criados métodos com o mesmo nome, sendo que só é preciso ter a assinatura/conteúdo diferentes. No paradigma de orientação a objetos se prega o conceito da "abstração". Para construir um sistema orientado a objetos, não devemos projetar o sistema como sendo uma grande pela monolítica.”. (ZENZELUK, J. H.; RIBEIRO, S. Um estudo para a evolução do PHP com a linguagem Orientada a objetos. Revista Científica Semana Acadêmica, Fortaleza, v. 3, n. 1, 2014.). Podemos compreender que a herança associa-se ao polimorfismo, que na orientação a objetos pode assumir diferentes comportamentos. Como se apresenta o polimorfismo na forma de sobreposição? a. .Polimorfismo de sobreposição significa que a classe mãe possui o mesmo atributo da sua classe filha, sendo que irá sobrepor o método da classe filha. b. .Polimorfismo de sobreposição significa que a classe mãe possui o mesmo método da sua classe filha, sendo que irá sobrepor o método da classe filha. c. .Polimorfismo de sobreposição significa que as classes filhas possuem o mesmo método da sua classe mãe, sendo que irá sobrepor o método da classe mãe. d. .Polimorfismo de sobreposição significa que as classes filhas possuem o mesmo atributo da sua classe mãe, sendo que irá sobrepor o atributo da classe mãe. e. .Polimorfismo de sobreposição significa que as classes filhas possuem o mesmo atributo da sua classe mãe, sendo que irá sobrepor o método da classe mãe. Questão 4 Texto da questão “Em geral, você pode fazer distinção entre os dois principais propósitos do uso da herança: podemos utilizá-la para herdar o código (herança de código) e podemos utilizá-la para herdar o tipo (subtipagem). O primeiro aspecto é útil para reutilização de código, o segundo para polimorfismo e especialização. Quando herdamos de (‘estendemos’) classes concretas, realizamos as duas coisas: herdamos a implementação e o tipo”. (BARNES, D. J.; KOLLING, M. Programação orientada a objetos em Java. Editora Pearson Prentice Hall. São Paulo, 2004. p. 276) É possível compreender a utilização de herança como uma forma de programação de nível mais elevado de abstração. Neste sentido, o que são heranças múltiplas? a. .A classe que herda os atributos e métodos combinados das suas classes subtipo. b. .A classe que herda os atributos e métodos combinados das suas classes descendentes. c. .A classe que herda os atributos e métodos combinados das suas classes subclasse. d. .A classe que herda os atributos e métodos combinados das suas classes filho. e. .A classe que herda os atributos e métodos combinados das suas classes mãe. Questão 5 Texto da questão "A herança representa um caminho muito importante no qual a orientação a objeto diverge das abordagens dos sistemas convencionais. Ela efetivamente permite que você construa de forma incrementada tratando classes herdadas. Primeiro é necessário construir classe para lidar com o caso mais geral. Em seguida, a fim de tratar com os casos especiais, acrescentam-se classes mais especializadas - herdadas da primeira classe". (PAGE-JONES, M. Fundamentos do desenho orientado a objeto com UML. São Paulo: Makron Books, 2001. p. 32.). Portanto, podemos compreender a importância dos diversos tipos de sistemas de informação e a sua relação no contexto organizacional. Como é possível as classes herdadas acessar as informações da classe mãe se ela é definida como private? a. .Usando os métodos get e set. b. .Usando o método public. c. .Usando os métodos integer e double. d. .Usando o método Override. e. .Usando os métodos void e int. Questão 6 Texto da questão “O software orientado a objeto é um software constituído de objetos e das classes para as quais eles pertencem. Um objeto é uma construção de software na qual operações (que são semelhantes a funções ou procedimentos) são organizados em torno de um conjunto de variáveis (que funcionam como dados).”. (PAGE-JONES, M. Fundamentos do desenho orientado a objeto com UML.. São Paulo: Makron Books, 2001. p. 50.) É fundamental compreender os fundamentos de orientação a objeto e construção das classes e as práticas utilizadas. É chamada de “boa prática” quando se executa uma ordem clara e coerente já adotada e aceita pelo mercado de desenvolvedores. Neste sentido, sendo considerada uma boa prática, a elaboração de uma classe compreende uma ordem das palavras-chave. Esta ordem é: a. .Atributos da classe > Definição da classe > Construtores > Métodos. b. .Construtores > Atributos da classe > Definição da classe > Métodos. c. .Definição da classe > Métodos > Construtores > Atributos da classe. d. .Definição da classe > Atributos da classe > Construtores > Métodos. e. .Definição da classe > Construtores > Atributos da classe > Métodos. Questão 7 Texto da questão “Polimorfismo é um termo grego que significa muitas formas (poli: muitas, morphos: formas). Na programação é o mesmo que dizer que várias classes podem possuir a mesma estrutura e comportamentos diferentes. Ao utilizar herança não apenas podemos reutilizar métodos da classe pai, como também podemos sobrescrever os métodos da classe pai, fazendo assim com que algumas características sejam modificadas. Basicamente, por exemplo podem ser criados métodos com o mesmo nome, sendo que só é preciso ter a assinatura/conteúdo diferentes.”. (ZENZELUK, J. H.; RIBEIRO, S. Um estudo para a evolução do PHP com a linguagem Orientada a objetos. Revista Científica Semana Acadêmica, Fortaleza, v. 3, n. 1, 2014.). O polimorfismo é uma técnica largamente utilizada em orientaçãoa objeto. Neste sentido, existem três formas de aplicar o Polimorfismo. Quais são? I. Sobrecarga. II. Exclusão. III. Sobreposição. IV. Redundância. V. Inclusão. É correto o que se afirma em: a. .I, III, IV e V. b. .I, II, III, IV e V. c. .II, IV e V. d. .II, III e IV. e. .I, III e V. Questão 8 Texto da questão “As classes em Programação orientada a objetos (POO) são definições dos elementos que formam um sistema, neste caso, definições dos objetos que vão intervir em nossos programas. Um objeto se define indicando que propriedades e funcionalidades têm. Justamente essas declarações são o que é uma classe. Quando se faz uma classe simplesmente se especifica que propriedades e funcionalidades têm.” (ZENZELUK, J. H.; RIBEIRO, S. Um estudo para a evolução do PHP com a linguagem Orientada a objetos. Revista Científica Semana Acadêmica, Fortaleza, v. 3, n. 1, 2014.). Quando se programa em orientação a objetos é fundamental ter domínio sobre os conceitos fundamentais, como classe e as suas nomenclaturas quando se trata de herança. Neste sentido, quais as afirmativas abaixo são falsas ou verdadeiras com relação à hierarquia entre as classes? I. ( ) Superclasse é a classe que recebe as heranças. II. ( ) Classes filhas podem remover atributos e métodos da sua classe mãe. III. ( )Ancestral é a classe que aparece na hierarquia na posição acima da classe mãe. IV. ( ) Descendente é toda classe que aparecer abaixo da classe mãe. É correto o que se afirma em: a. .F, F, V, V. b. .V, V, F, F. c. .V, V, V, F. d. .V, F, V, F. e. .F, V, F, V. Questão 9 Texto da questão “No paradigma de orientação a objetos se prega o conceito da "abstração". Para construir um sistema orientado a objetos, não devemos projetar o sistema como sendo uma grande peça monolítica; devemos separá-lo em partes, concentrando-nos nas peças mais importantes e ignorando os detalhes, para podermos construir peças bem-definidas que possam ser reaproveitadas mais tarde, formando uma estrutura hierárquica.”. (ZENZELUK, J. H.; RIBEIRO, S. Um estudo para a evolução do PHP com a linguagem Orientada a objetos. Revista Científica Semana Acadêmica, Fortaleza, v. 3, n. 1, 2014.). Podemos compreender a importância do conceito e aplicação do conceito de abstração na orientação a objeto, onde são criadas classes abstratas. Neste sentido, qual seria o oposto de uma classe abstrata? a. .Classe filha. b. .Classe mãe. c. .Classe concreta. d. .Classe ancestral. e. .Classe descendente. Questão 10 Texto da questão “A linguagem Java apoia a herança simples, mas não a múltipla. Isso porque uma classe estende, no máximo, para outra classe. Todavia, uma classe potencialmente implementa muitas interfaces.”. (PAGE-JONES, M. Fundamentos do desenho orientado a objeto com UML. São Paulo: Makron Books, 2001. p. 50.) Podemos compreender a questão da herança na orientação a objeto. Neste sentido, temos agregados à herança os conceitos de sobrecarga e sobrescrita. Dentre as afirmativas abaixo, quais são verdadeiras e quais são falsas? I. ( ) Os métodos existentes na classe mãe talvez não se adéquem a todas as classes filhas. II. ( ) @override nas classes filhas realiza uma sobrescrita do método herdado. III. ( ) Na herança, os tipos de retorno podem ser modificados nas sobrescritas. IV.( ) Na herança, os tipos de retorno não podem ser modificados na sobrecarga. V. ( ) Sobrecarga cria métodos com o mesmo nome, mas cada método recebe parâmetros diferentes. Agora, assinale a alternativa que apresenta a sequência correta. a. .V, V, F, F, V. b. .V, V, V, F, F. c. .F, V, F, F, V. d. .V, F, F, F, V. e. .F, V, V, F, V.