O documento discute os principais conceitos da programação orientada a objetos, incluindo objetos, classes, atributos, comportamentos, métodos, mensagens, relacionamentos entre objetos e vantagens da POO. As classes definem os atributos e comportamentos compartilhados por objetos de um determinado tipo, enquanto os métodos implementam as operações de uma classe.
2. OBJETO
• Uma entidade que possui características e
comportamentos
• É uma construção de software que
encapsula estado e comportamento.
• Os objetos permitem que você modelo seu
software em termos reais
• Objetos são agrupados pelos seus
comportamentos e atributos comuns
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
3. Classes
• Define os atributos e comportamentos
comuns compartilhados por um tipo de
objeto.
• Os objetos de certo tipo ou classificação
compartilham os mesmos
comportamentos e atributos.
• Uma classe é usada para instanciar (ou
criar) objetos
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
4. Atributos e Comportamentos
• ATRIBUTOS:
– São características de uma classe visíveis
externamente
– Exemplo: cor dos olhos, cor dos cabelos, etc.
• COMPORTAMENTOS:
– É uma ação executada por um objeto quando
passada uma mensagem ou em resposta a
uma mudança de estado: é algo que um objeto
faz.
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
5. Mensagem
• Comunicação entre objetos.
• Humanos trocam mensagens entre si
• Os objetos fazem o mesmo.
• Exemplo: um objeto conta bancária pode
receber uma mensagem para reduzir seu
saldo
• Uma mensagem pode ser enviada por um
método
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
6. Métodos
• Implementam uma operação/função;
• Realizam uma tarefa em um programa
(classe)
• Descrevem os mecanismos que realmente
realizam suas tarefas
• Uma classe abriga um ou mais métodos
• EXEMPLO: Métodos SET/GET são
comportamentos da classe que retornam ou
configuram atributos.
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
7. Métodos Acessores
• Métodos GET são também chamados de
métodos assessores.
• Dão acesso aos dados internos de um objeto
• Ocultam o fato de os dados estarem em uma
variável, em uma combinação de variáveis
ou serem calculados
• Permitem que você mude ou recupere o
valor e tem efeitos colaterais sobre o estado
interno.
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
8. Métodos Mutantes
• Métodos SET são também chamados de
métodos mutantes.
• Permitem que você altere o estado interno de
um objeto
• Pode processar sua entrada como quiser,
antes de alterar o estado interno do objeto
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
9. Métodos
• Exemplo: uma classe que representa uma
conta bancária poderia contar com um
método para depósitos, outro para saques e
outro para obter o saldo
• Antes de qualquer coisa, o programador
deve construir um objeto de uma classe
antes de fazer um programa realizar as
tarefas descritas na própria classe
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
10. Métodos
• Métodos são como funções ou procedimentos
• Permitem que o programador modularize um
programa, separando suas tarefas em unidades
• Tornam os programas mais gerenciáveis
• Permite reutilização de código
• Um pequeno método que realiza uma única tarefa é
mais fácil de testar e depurar do que um método
maior que realiza muitas tarefas
• Limite o seu método à realização de uma única
tarefa
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
11. Métodos
• Dê um nome apropriado ao seu método, que
expresse o que ele realmente faz
• Um método é invocado por uma chamada de
método
• Quando o método chamado completa sua
tarefa, ele retorna um resultado ou retorna o
controle ao chamador
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
12. Métodos
• Um método com muitos parâmetros pode
estar realizando tarefas demais
• Considere dividir o método em métodos
menores que realizam tarefas separadas
• Um tipo de dado é requerido para cada
parâmetro na lista de parâmetros de um
método!
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
13. Métodos
• Métodos podem exigir um ou mais parâmetros
que representam informações adicionais
necessárias para realizar a tarefa
• Ao declarar um método você deve especificar se
o método requer dados para realizar a sua
tarefa, ou não.
• O método pode ter uma lista de parâmetros.
Nenhum, apenas um ou vários.
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
14. Métodos
• Retorno de método: quando um método tem
um tipo, ao completar sua tarefa, o método
retorna, ao método chamador, um resultado
• Cliente de um objeto: é qualquer objeto que
chama os métodos de outro objeto
• Todo parâmetro deve especificar um tipo e um
identificador
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
15. Chamada de Métodos
• Quando mensagens são enviadas para um
objeto
• Instrui o método do objeto a fazer a sua tarefa
• Um objeto tem atributos que são portados com o
objeto quando ele é utilizado em um programa
• Exemplo: cada objeto conta bancária sabe o
saldo da conta que ele representa, mas não
sabe os saldos de outras contas do banco
• Não podemos chamar um método que pertence
a outra classe até criar um objeto dessa classe
• Cada nova classe que criamos, torna-se um
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
16. Chamada de Métodos
• New:
• Cria um objeto da classe
• Cada nova instância é uma duplicata da
ultima
• Uma vez instanciada, a instancia transporta
comportamentos e controla seu estado
• Embora o estado possa variar com o passar
do tempo, a instancia ainda é um objeto
• Exemplo: um mamífero de cor cinza é tão
mamífero quanto outro de cor marrom.
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
17. Chamda de Métodos
• Três formas de chamar um método. Exemplos:
– MaiorValor(n1, n2, n3); o próprio nome do
método
– MaiorValor.determineMaximo(); uma
variável que contém uma referência a um
objeto
– Math.sqrt(); o nome da classe
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
18. Sobrecarga de Métodos
• Métodos com o mesmo nome podem ser
declarados na mesma classe, contanto que
tenham diferentes conjuntos de parâmetros
• É usada para criar vários métodos com o
mesmo nome que realizam as mesmas tarefas
ou tarefas semelhantes mas sobre tipos
diferentes de números ou números diferentes de
argumentos
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
19. Sobrecarga de Métodos
• O compilador distingue os métodos
sobrecarregados pelas suas assinaturas
• Distingue pelo nome do método, número do
método, tipos dos parâmetros e ordem dos
parâmetros
• Void metodo1(int a, float b) e void metodo1(float
a, int b) são diferentes!!!!
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
20. Sobrecarga de Métodos
• Declarações de métodos sobrecarregados com
assinaturas idênticas causam erros mesmo que
os tipos de retorno sejam diferentes
• O tipo de retorno então não diferenciam os
métodos!
• Uso da palavra OVERRIDE
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
21. Construtores
• São métodos usados para inicializar objetos.
• É utilizado para inicializar um objeto de uma
classe
• Java requer uma chamada de construtor para
todo objeto que é criado
• NEW: chama o construtor da classe para
realizar a inicialização
• O compilador JAVA fornece um construtor-
padrão sem parâmetros em qualquer classe que
não inclua explicitamente um construtor.
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
22. Construtores
• Construtores não precisam de TIPO em sua
assinatura, diferentemente dos MÉTODOS.
• Um construtor deve ter o mesmo nome da sua
classe
• Uma classe pode ter vários métodos
construtores
• Construtores NÃO podem retornar valores
• Se o programador especificar um construtor
para a classe, o JAVA não criará um construtor-
padrão
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
23. Construtores
• Construtor vazio:
– É um método sem parâmetros algum
• Construtor parametrizado:
– É um método que contém parâmetros em sua
assinatura
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
24. Relacionamentos de Objeto
• Objetos se comunicam uns com os outros
através de mensagens
• As mensagens fazem com que um objeto
realize algo
• Passar uma mensagem é o mesmo que
chamar um método para mudar o estado do
objeto ou para exercer um comportamento
• Mensagens permitem que os objetos
permaneçam independentes
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016
25. Relacionamentos de Objeto
• Quando um objeto envia uma mensagem
para outro, geralmente ele não se
preocupa coma maneira como o objeto
escolhe transportar o comportamento
solicitado
• O objeto solicitante se preocupa apenas
que o comportamento aconteça
• Um objeto pode conter outros objetos
dentro dele
03/06/2016Prof.ªM.ªEng.ªElaineCecíliaGatto
DesenvolvimentodeSoftwarepareaWeb2016