Objetos

Conceitos sobre Objetos
- 1. Abstração: ressaltar os aspectos essenciais de um dado objeto, descartando aspectos desnecessários
- 2. Atributos: uma propriedade de um objeto identificada por um nome. Atributos são valores dos dados que caracterizam os objetos.Um atributo tem um valor único para um objeto
- 3. Operação: um serviço que é requisitado a um objeto, que é parte de seu comportamento em resposta à solicitações externas. Uma operação pode ter parâmetros. De forma simples, operação é uma ação ou transformação realizada por um objeto ou sofrido por ele.
- 4. Encapsulamento de informações:
- Um objeto contem informações que não são acessíveis a outros objetos
- 5. Mensagens: objetos se comunicam através de mensagens, isto é,sinais enviados de um objeto a outro, requisitante de um serviço,através da execução de uma operação pelo objeto requisitado
- 6. Polimorfismo: várias formas, ou seja, refere-se a vários comportamentos que uma mesma operação pode assumir, assim como a capacidade de uma variável referir-se a diferentes objetos,que preenchem certas responsabilidades em função da mensagem que lhes é passada.
Exemplos
- 1. Abstração:
- Sistema: X Project
- Abstração:
- Objeto: (Destacar 3 objetos)
- Exemplos de abstração:
- 1o.: Game de corrida
- 2o.
- 3o.
- 2. Atributos:
- Sistema: SmartFarm
- Objeto:
- Atributos: Destacar 3 atributos
- 3. Operações:
- Sistema: EnergyControl
- Objeto:
- Operações: Destacar 3 operações
Polimorfismo
- Propriedade segundo a qual vários métodos podem existir com o mesmo nome mas com comportamento diferente
- Ao receber uma mensagem para efetuar uma Operação, é o objeto quem determina como a operação deve ser efetuada
- Com o polimorfismo pode-se trabalhar com qualquer representação do objeto. Por exemplo, aluno e professor são objetos diferentes, porém ambos são pessoas, assim é possível trabalhar com os dois tipos diferentes utilizando o tipo pessoa, claro que com as limitações de pessoa.
- Permite que um método produza resultados diferentes dependendo do objeto ao qual é aplicado.
- A mesma invocação pode produzir 'muitas formas' de resultados.
- Exemplos
- A operação mover pode atuar diferentemente nas classes Janela e PeçadeXadrez
- A operação Calcular_Salário atua diferentemente nas classes funcionário comissionado e funcionário assalariado
- Uma bola de futebol e uma camisa da seleção brasileira são artigos esportivos, mais que o cálculo deles em uma venda é calculado de formas diferentes.
- Uma classe chamada Vendedor e outra chamada Diretor podem ter como base uma classe chamada Pessoa, com um método chamado CalcularVendas. Se este método (definido na classe base) se comportar de maneira diferente para as chamadas feitas a partir de uma instância de Vendedor e para as chamadas feitas a partir de uma instância de Diretor, ele será considerado um método polimórfico, ou seja, um método de várias formas.
Encapsulamento
- Encapsulamento vem de encapsular, que em programação orientada a objetos significa separar o programa em partes, o mais isolado possível
- A idéia é tornar o software mais flexível, fácil de modificar e de criar novas implementações
- O Encapsulamento serve para controlar o acesso aos atributos e métodos de uma classe
- É uma forma eficiente de proteger os dados manipulados dentro da classe, além de determinar onde esta classe poderá ser manipulada
- Usamos o nível de acesso mais restritivo, private, que faça sentido para um membro particular
- Sempre usamos private, a menos que tenhamos um bom motivo para deixá-lo com outro nível de acesso
- Não devemos permitir o acesso público aos membros, exceto em caso de ser constantes, isso porque membros públicos tendem a nos ligar a uma implementação em particular e limita a nossa flexibilidade em mudar o código.
- Exemplo:
- Classe: Conta
- Atributos: Conta, Saldo, ...
- Visibilidade: Pública
- Método: AtualizarSaldo
- Como o atributo Saldo esta como publico, ou seja, é acessivel de fora da classe, nada impede de algum outro programador que esteja envolvido no projeto possa executar algo como: ... Somar 1.000.000,00 ao saldo.
- Classe: Conta
- Atributos: Conta, Saldo, ...
- Visibilidade: Privada
- Método: AtualizarSaldo
- Se alterarmos os atributos da classe para privado não haverá acesso direto ao atributo, só deixando esses acessíveis de dentro da classe. Assim será "obrigatório" o uso do método AtualizarSaldo para alterar o valor de Saldo.
Herança
- Capacidade de reutilização de software
- Cria uma nova classe a partir de uma classe existente:
- absorvendo os dados e comportamentos da classe existente e
- aprimorando-a com novas capacidades
- A subclasse estende a superclasse
- Subclasse:
- Grupo mais especializado de objetos
- Comportamentos herdados da superclasse:
- Podem se personalizar
- Comportamentos adicionais.
- Hierarquia de classes
- Superclasse direta:
- Herdada explicitamente (um nível acima na hierarquia).
- Superclasse indireta:
- Herdada de dois ou mais níveis acima na hierarquia.
- Herança única:
- Herda de uma superclasse.
- Herança múltipla:
- Herda de múltiplas superclasses.
- O Java não suporta herança múltipla.
- Herda de múltiplas superclasses.
- Superclasse direta:
- Superclasses e subclasses
- Freqüentemente, um objeto de uma classe também ‘é um’ objeto de uma outra classe.
- Exemplo: Em geometria, um retângulo é um quadrilátero.
- A classe Retângulo herda da classe Quadrilátero.
- Quadrilátero : superclasse.
- Retângulo : subclasse.
- Exemplo: Em geometria, um retângulo é um quadrilátero.
- A superclasse em geral representa um conjunto maior de objetos do que as subclasses.
- Exemplo:
- Superclasse: Veículo
- Subclasses: Carros, caminhões, barcos, bicicletas...
- Subconjunto mais específico e menor de veículos.
- Superclasse: Veículo
- Exemplo:
- Freqüentemente, um objeto de uma classe também ‘é um’ objeto de uma outra classe.
- Exemplos de herança
Superclasse...........Subclasses ----------------------------------------------------------------------------------------- Aluno.................AlunoDeGraduação, AlunoDePósGraduação Forma.................Círculo, Triângulo, Retângulo Financiamento........ FinanciamentoDeCarro, FinanciamentoDeReformaDaCasa, FinanciamentoDeCasa Empregado............ Docente, Funcionário ContaBancária.........ContaCorrente, ContaDePoupança, ContaInvestimento
Exercícios
- Dentro do problema desenvolvido no seu trabalho de grupo, defina:
- Um objeto
- Os atributos deste objeto
- As operações neste objeto
- Possíveis polimorfismos em cima do objeto
- Possíveis heranças de classe





