TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Conceitos Orientação a Objetos

Por:   •  28/4/2017  •  Pesquisas Acadêmicas  •  1.299 Palavras (6 Páginas)  •  380 Visualizações

Página 1 de 6
  1. Defina e exemplifique os objetos e as classes.

Uma classe é uma estrutura que abstrai um conjunto de objetos com características similares. Ela define o comportamento de seus objetos através de seus métodos e os estados possíveis destes objetos através de seus atributos.

Já um objeto é uma instância de uma classe. O objeto é capaz de armazenar estados através de seus atributos, que representam as características do objeto, e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.

Para exemplificar os objetos e classes é possível utilizar o exemplo de um sistema de uma empresa. Nesse sistema estão cadastrados todos os empregados da empresa. Cada empregado possui um nome, CPF, endereço, telefone, salário, horas extras.

  1. O que é encapsulamento e quais os seus benefícios? Exemplifique.

Encapsulamento é uma técnica que permite restringir o acesso a alguns componentes do objeto. Permite também que os detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos para os objetos. A partir do encapsulamento, do ponto de vista do objeto, não é necessário o conhecimento a respeito da implementação interna da classe, já que isso passa a ser responsabilidade dos métodos internos da classe.

Assim, o encapsulamento organiza os dados, agrupando-os (encapsulando-os) em objetos (classes), reduzindo as colisões de nomes de variáveis e reunindo métodos relacionados às suas propriedades. Um benefício é ajudar a manter um programa com centenas ou milhares de linhas de código mais legível e fácil de trabalhar e manter.

No exemplo do sistema de empregados da empresa, supondo que existem duas classes, uma é a classe Gerente e a outra é a classe Funcionário, cada uma possui os atributos da classe Empregado. A partir do encapsulamento é possível acessar os nomes dos empregados sem conflito com o nome das variáveis. Basta perguntar: gerente.nome e funcionario.nome.

  1. Qual a diferença entre variáveis de instância e variáveis de classe?

A variável de instância pertence somente ao objeto criado. Por exemplo ao criar uma classe Quadrado e criar uma variável de instância chamada cor e atribuir a cor azul a ela, todos os seus objetos serão azul, porém se a cor de um dos objetos for alterada para verde, os  demais objetos dessa classe continuarão com a cor azul. Já na variável de classe, se um objeto altera a cor para verde, todos os objetos também serão verdes, isso porque a variável é da classe e não da instância. Para criar uma variável basta adicionar a palavra static na declaração.

  1. Qual a diferença entre métodos de instância e métodos de classe?

Nos métodos de instância é necessário criar um objeto de uma determinada classe para utilizar seus métodos. Já em um método de classe, é possível chamar o método sem criar um objeto.

  1. Qual a diferença entre variáveis locais e de instância?

Variável local pertence a um método individual, e só pode ser acessada no método em que for declarada. Já a variável de instância pertence a um objeto, podendo ser utilizada em todos os métodos de sua classe.

  1. O que é herança em orientação a objetos? Exemplifique.

A herança permite que as classes compartilhem seus atributos, métodos e outros membros da classe entre si. Assim, a herança tem dois tipos principais de classe, a classe base que concede características a uma outra classe e a classe derivada, que herda as características da classe base.

Voltando ao exemplo do sistema para a empresa. Caso a empresa possua vários cargos como senior, pleno e junior. Seria possível criar três classes (uma para cada cargo) e fazê-las herdarem da classe Empregado. E sobrescrever o método de calcular o salário do empregado em cada uma, adaptando para o valor correspondente ao cargo.

  1. Quais os dois problemas citados em sala de aula que a herança tenta resolver?

Reúso de código e especialização de métodos. O primeira simplifica na criação e manutenção do programa e o segundo dá certa autonomia às classes derivadas permitindo que quando houver uma mudança em uma, as outras que também são classes derivadas não tenham alteração.

  1. Qual a diferença entre sobrescrever e sobrecarregar um método?

Sobrescrever é um método, é reescrevê-lo, mantendo seus parâmetros e o tipo do seu retorno. Sobrecarregar um método permite a existência de vários métodos com o mesmo nome, onde suas assinaturas são levemente diferentes, mudando tipo de parâmetros e tipo do retorno, por exemplo. Com a sobrecarga dos métodos, é possível criar um método soma que possua diferentes parâmetros. Um pode ter como entrada dois doubles, o outro pode ter como entrada dois inteiros. Assim, quando o método soma é chamado, ele poderá ter como parâmetros inteiros ou doubles.

  1. Quais são os modificadores que definem o acesso de controles e quais são seus efeitos?

Private

Protected

Public

Mesma classe

sim

sim

sim

Mesmo pacote

não

sim

sim

Pacotes diferentes (subclasses)

não

sim

sim

Pacotes diferentes (sem subclasses)

não

não

sim

  1. Qual a diferença entre classes abstratas e interfaces?

Uma interfaces não é considerada como classe e sim como uma entidade. Todos os seus métodos são abstratos e não possuem implementação, ou seja, há apenas a definição dos métodos sem o corpo. Na interface são especificados os atributos, métodos e funções que as classe que implementam essa interface são obrigadas a implementar.

As classes abstratas devem conter pelo menos um método abstrato. É usada apenas para ser herdada, sendo que não há como criar instâncias dela. As suas subclasses devem conter as mesmas hierarquias e/ou padrões.

...

Baixar como (para membros premium)  txt (8.4 Kb)   pdf (127.5 Kb)   docx (15.3 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com