10 exercícios de orientação a objetos com respostas para aprender sobre classes, objetos, herança, polimorfismo e muito mais!
Para mandar bem em provas, exames e concursos treine e aprenda gratuitamente com os exercícios de orientação a objetos resolvidos.
#Índice
Considere que um Analista de TI sabe que uma classe Pessoa Física e uma classe Pessoa Jurídica possuem o atributo nome como uma informação em comum e que o CPF é um atributo específico para a Pessoa Física e o CNPJ é um atributo específico para Pessoa Jurídica. Então o Analista criou uma outra classe com o atributo nome e seu objetivo é que haja herança deste e, eventualmente, outros métodos e atributos, para as classes filhas, Pessoa Física e Pessoa Jurídica, que já existiam.
Essa classe criada não é instanciada, apenas fornece um modelo para geração de outras classes, e é denominada
Parte 1 da resolução
A letra A está errada pois uma subclasse ou classe derivada é uma classe que é definida através da herança a partir de outra classe. De acordo com o enunciado do exercício as subclasses seriam as classes filhas Pessoa Jurídica e Pessoa Física.
Parte 2 da resolução
A letra B está errada pois na orientação a objetos existe o construtor de uma classe, mas é um conceito vinculado a métodos e não ao tipo de classe.
Parte 3 da resolução
A letra C está correta pois classes abstratas servem como modelos para as classes derivadas ou subclasses. As classes abstratas somente podem ser estendidas e não instanciadas e caso ela possua métodos abstratos as classes derivadas devem implementar tais métodos. Para reafirmar a resposta o enunciado do exercício diz que e "essa classe criada não é instanciada, apenas fornece um modelo para geração de outras classes" e "o Analista criou uma outra classe com o atributo nome e seu objetivo é que haja herança deste".
Parte 4 da resolução
A letra D está errada pois na orientação a objetos existe o conceito de sobrescrita de métodos e não de classe sobrescrita.
Parte 5 da resolução
A letra E está errada pois o pacote serve para organizar classes e bibliotecas e não está relacionado ao fornecimento de um modelo para geração de outras classes.
A programação orientada a objetos surgiu como uma alternativa a programação estruturada. O intuito de sua criação foi o de aproximar o manuseio das estruturas de um programa ao manuseio das coisas do mundo real, daí o nome "objeto" como uma algo genérico, que pode representar qualquer coisa tangível.
Os quatro pilares do paradigma de Orientação a Objetos são:
Parte 1 da resolução
A alternativa D está correta pois segundo o artigo "Os 4 pilares da Programação Orientada a Objetos" publicado no site devmedia, os 4 pilares da programação orientada a objeto são:
- Abstração:
É utilizada para a definição de entidades do mundo real, classes. As classes possuem identidade(unicidade), propriedades(características do objeto) e métodos(ações que o objeto irá executar).
- Encapsulamento:
O encapsulamento esconde detalhes internos do funcionamento dos métodos de uma classe para os objetos. A maior parte das linguagens orientadas a objetos implementam o encapsulamento baseado em propriedades privadas, ligadas a métodos especiais chamados getters e setters, que irão retornar e setar o valor da propriedade, respectivamente. Essa atitude evita o acesso direto a propriedade do objeto, adicionando uma outra camada de segurança à aplicação.
- Herança:
A Herança possibilita que as classes compartilhem seus atributos, métodos e outros membros da classe entre a classe pai e as classes derivadas. Algumas linguagens, como o C++, usam herança múltipla, ou seja, um objeto pode herdar características de vários “ancestrais” ao mesmo tempo. Já outras linguagens como Java, PHP, etc, permitem somente a herança de uma classe derivada com uma classe pai somente.
- Polimorfismo:
O polimorfismo ocorre quando duas ou mais classes derivadas de uma mesma superclasse invocam métodos que têm a mesma identificação (assinatura) mas comportamentos distintos. O polimorfismo está intimamente conectado à herança.
As alternativas A, B e C estão erradas pois sequenciamento, procedimento, bibliotecas, classes, objetos, atributos e métodos não são pilares do paradigma de orientação a objetos, apesar de serem conceitos importantes para a orientação a objetos.
O termo polimorfismo é originário do grego e significa "muitas formas". Polimorfismo é o princípio pela qual duas classes derivam de uma mesma superclasse, podendo invocar métodos que tenham a mesma assintura, mas comportamentos distintos.
Sobre os conceitos de Orientação a Objetos, identifique com “V” caso verdadeiro ou “F” caso falso as assertivas a seguir.
( ) A Sobrescrita permite que, em uma mesma classe, tenhamos vários métodos com o mesmo nome, mas com a assinatura diferente.
( ) Objetos são instâncias de uma classe que possui os atributos e as operações definidos na classe.
( ) Superclasse é uma especialização de um conjunto de classes através de herança.
( ) A Sobrecarga possibilita que o mesmo nome possa ser utilizado em diferentes métodos em uma mesma classe, desde que, por exemplo, as quantidades de parâmetros sejam diferentes.
( ) Classe encapsula dados para descrever o conteúdo de alguma entidade do mundo real.
A sequência correta obtida, no sentido de cima para baixo, é
Parte 1 da resolução
A afirmativa "A Sobrescrita permite que, em uma mesma classe, tenhamos vários métodos com o mesmo nome, mas com a assinatura diferente." está errada, pois sobrescrita ou override ocorre quando um método herdado de uma superclasse é especializado, alterando o seu comportamento na subclasse. 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.
Como o valor lógico do primeiro item é falso(F), então sabemos que as alternativas A, B e E estão erradas.
Parte 2 da resolução
A afirmativa "Superclasse é uma especialização de um conjunto de classes através de herança." está errada, pois os conceitos de superclasse e subclasse foram trocados, o que nos leva a conclusão que a alternativa D está errada e que a letra C é a resposta correta do exercício.
Quanto aos conceitos do paradigma da orientação a objetos, é CORRETO afirmar:
Polimorfismo é um conceito usado em programação orientada a objetos, e envolve a seleção dinâmica baseada
Considere as seguintes afirmações sobre alguns fundamentos de Análise de Sistemas orientada a objetos.
I - Classe é um conceito orientado a objeto que encapsula dados e abstrações procedurais necessárias para descrever o conteúdo e o comportamento de alguma entidade do mundo real. Podese dizer que classe é uma descrição generalizada que descreve uma coleção de objetos similares.
II - Superclasse é a generalização de um conjunto de classes a ela relacionadas.
III - Subclasse é uma especialização da superclasse. Uma subclasse herda todos os atributos e operações associadas à sua superclasse e não pode incorporar atributos ou operações adicionais específicos.
Quais estão corretas?
Com relação aos conceitos de orientação objeto, existe uma característica que faz com que detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos para os objetos e que por conta dessa técnica, o conhecimento a respeito da implementação interna da classe é desnecessário do ponto de vista do objeto, uma vez que isso passa a ser responsabilidade dos métodos internos da classe. A característica apresentada se refere a:
Marque a alternativa que representa a definição de herança, em orientação a objetos.
No contexto dos principais elementos conceituais do modelo de objetos, assinale a alternativa que define corretamente o conceito de encapsulamento.
O Polimorfismo, um dos Pilares da Programação Orientada a Objetos - POO,
Perguntas e Respostas
Lute até o fim, porque sua vida dependerá da força que você tem dentro de ti.