O documento discute os conceitos fundamentais da orientação a objetos, incluindo classes, objetos, atributos, métodos e relacionamentos entre objetos. Explica que uma classe define os atributos e métodos comuns a objetos do mesmo tipo e que objetos são instâncias de classes que possuem estados e comportamentos próprios. Também aborda como objetos se comunicam através de mensagens e como classes podem ser relacionadas por agregação, composição ou herança.
2. Orientação a Objetos:
Paradigma que procura compor modelos de forma mais próxima às
interações existentes no mundo real, cujas primeiras propostas
datam da década de 60;
A POO define que objetos se comunicam através da troca de
mensagens para promover a troca de serviços;
Revisão Java OO
3. Conceito de Objetos
O que seria um objeto?
Uma entidade capaz de reter um estado através de
propriedades(atributos) e que oferece uma série de operações
(comportamentos/métodos) para visualizar ou modificar seu estado.
Métodos seriam o mesmo que funções e procedimentos.
Princípios da Orientação à Objetos 3
4. Conceito de Objetos
De maneira objetiva, um objeto deve possuir:
Um estado (atributos)
Um comportamento (métodos)
Interface (assinaturas dos métodos)
Uma identidade (Ljava.lang.String;@13aaa14a)
Princípios da Orientação à Objetos 4
5. Analogia:
Problema: Guiar um carro.
Mas antes disso, o que precisa?
Alguém tem que projetar...
Desenhos de engenharia elaboram o projeto
Revisão Java OO
6. Analogia:
Problema: Guiar um carro.
No Projeto temos:
Pedais de acelerador, de freio...
‘Ocultam’ os complexos mecanismos que
realmente fazem o veículo funcionar;
Revisão Java OO
7. Problema: Guiar um carro.
Podemos guiar um carro que está ainda no projeto?
Não... Infelizmente não podemos guiar os desenhos de
engenharia de um carro!
Revisão Java OO
8. Problema: Guiar um carro.
Antes de guiar, ele deve ser construído a partir dos
desenhos de engenharia que o descrevem:
Revisão Java OO
9. Problema: Guiar um carro.
Ok, o carro está pronto... Mas ele consegue acelerar
sozinho?
Não... O motorista tem que pressionar o pedal do
acelerador!
Revisão Java OO
10. Analogia:
Para executar tarefa (rotinas) em um programa é
necessário um método;
O método descreve os mecanismos que realmente
realizam suas tarefas;
Ocultando de seu usuário as tarefas complexas que
este realiza...
Assim como...
Os pedais do nosso carro!
Revisão Java OO
11. Em Java:
Primeiro criamos uma unidade de programa chamada
classe para abrigar esses tais métodos;
Você pode fornecer um ou mais métodos que são
projetados para realizar as tarefas da classe;
Por Exemplo....
Uma classe Conta pode abrigar os métodos
(tarefas) depositar, debitar, perguntar o saldo
atual...
Revisão Java OO
12. Em Java:
Assim como não podemos dirigir um projeto de um
carro, não podemos executar métodos de uma classe;
Assim como alguém tem que construir esse carro a
partir do seu projeto, você deve construir um objeto
de uma classe antes de fazer um programa realizar as
tarefas que a classe descreve como fazer;
Revisão Java OO
13. Analogia:
Além das capacidades do carro, ele também possui
características...
Cor, modelo, quantidade de portas...
Essas capacidades também são descritas no projeto
de engenharia do carro...
Cada carro mantém seus próprios atributos.
Revisão Java OO
14. Em Java:
Um objeto tem atributos que são portados consigo
quando este é utilizado em um programa;
Por Exemplo:
Uma classe conta possui:
Número, Saldo, Tipo...
Esses atributos são especificados pelas chamadas
variáveis de instância.
Revisão Java OO
15. Conceito de Objetos
Um exemplo, um celular:
Identificação
Número: (83)9999-9999
Outras propriedades
Largura: 58,6 mm
Altura: 115,2 mm
Cor: Branco
Comportamento
Ligar
Desligar
Efetuar chamadas
Princípios da Orientação à Objetos
15
Fonte: http://store.apple.com/
16. Conceito de Objetos
Porém um objeto sozinho não representa um sistema;
Um sistema é representado por vários objetos distintos ativos, que
podem ser chamados de instância;
E a comunicação entre esses objetos ocorre através de
mensagens, e o envio de cada mensagem significa executar um
método;
Princípios da Orientação à Objetos 16
17. Objeto Conta Bancária
Princípios da Orientação à Objetos 17
O estado atual
da conta
Comportamento:
operações que
uma conta pode
executar
creditar
debitar
número saldo
“123-x” 54,78
18. Estado do Objeto Conta
Princípios da Orientação à Objetos 18
creditar
debitar
número saldo
“123-x” 54,78
creditar
debitar
número saldo
“123-x” 74,78
creditar (20)
Comportamento mudou o estado do objeto conta bancária
19. Conceito de Classes
Voltando para o exemplo do carro, existem vários carros
de vários modelos. Um objeto Pajero é um instância da
classe Carro;
Carros de modelos diferentes possuem características e
comportamentos diferentes;
Logo, pode-se concluir que uma classe é uma espécie de
modelo (protótipo) que agrupa as características e os
comportamentos em comum aos objetos do mesmo tipo;
Princípios da Orientação à Objetos 19
20. Conceito de Classes
É na classe que definimos as variáveis e os métodos que
serão utilizados e os objetos são criados (instanciados) a
partir das classes;
Cada objeto possui seu espaço de memória individual,
assim como suas variáveis;
Tais variáveis são denominadas de variáveis de instâncias
(atributos);
Princípios da Orientação à Objetos 20
21. Classe x Objeto
21
creditar
debitar
número saldo
“123-x” 54,78
creditar
debitar
número saldo
“123-x” 54,78
creditar
debitar
número saldo
“123-x” 54,78
Conta
Múltiplos objetos
criados a partir da
mesma classe
22. Benefícios da O.O.
Acelerar o tempo de desenvolvimento;
Reduzir o tempo de manutenção;
Mais fácil de entender e adaptar;
Código de melhor qualidade;
Princípios da Orientação à Objetos 22
25. Toda e qualquer classe criada
herda da classe “Object”, ou
seja, define e implementa um
objeto;
Chamamos de Herança!
Revisão Java OO
26. E em java?
Classe Lâmpada:
Princípios da Orientação à Objetos 31
Palavra reservada class seguida do nome
da classe
Parâmetro, conjunto de caracter
A declaração de método
possui respectivamente:
O modificador de acesso
•O tipo de retorno
•Nome do método
•Lista de parâmetros
para recebimento
(tipo, nome)
27. E em java?
Instanciando Objetos
32
Para instanciar um objeto, é
necessário informar a Classe a
que este pertence, designar
um nome para ele, e utilizar a
palavra reservada new antes
da chamada do método
construtor –
responsável por iniciar os
parâmetros (características)
do novo objeto.
Para acessar, ou realizar
uma chamada, de um
método ou parâmetro é
utilizado o ponto (.)
seguido do nome do
método
28. A classe é a entidade responsável por definir os
atributos (características) e os métodos (serviços) que
serão oferecidos.
Revisão Java OO
Nome da
Classe
Atributos
Métodos
29. Como executar aplicações
Uma classe pode definir um método “main”;
É o método responsável pela execução da
aplicação;
Uma aplicação pode conter vários métodos
“main” (um em cada classe), mas apenas um
desses será definido como o método da
aplicação;
30. Assinatura de main
Ponto de início de toda aplicação Java.
public static void main(String [ ] args){
}
32. Como criar e acessar objetos?
Para criar, use o operador new
Para acessar atributos e métodos, utilize o “.”
(ponto)
Exemplo
33. Exercício 1
Crie um projeto no eclipse denominado
FabricaCelular
Crie a classe Celular e defina os atributos e métodos
vistos no slide anterior.
34. Exercício 1
No projeto FabricaCelular crie uma classe
chamada Programa.
Nesta classe, crie um método main.
Dentro do main, crie uma instância de sua
classe Celular
Acesse e imprima seus atributos no console
35. Exercício 2
Crie uma classe Conta
atributos (numero e saldo);
métodos (creditar, debitar, getSaldo, getNumero);
Cria uma classe Programa para usar a Conta
Envio da atividade para:
professordanielbrandao@gmail.com
Orientação à Objetos 40
36. Relacionamentos entre objetos
A POO define que podemos montar objetos a partir
de objetos
Essa união acontece de duas formas:
Agregação
Relacionamento fraco
Composição
Relacionamento forte
Herança
37. Relacionamentos entre objetos
Agregação e Composição são conhecidos como
relacionamentos TEM UM
Herança é um tipo de relacionamento É UM
38. Relacionamentos TEM UM
Agregação
Um objeto “ O1 ” é definido pela agregação de
alguns outros objetos;
Se o objeto “O1” for destruído, os objetos nele
contidos ainda serão válidos;
Ou seja, existe uma dependência “fraca” entre o
objeto “O1” e seus objetos contidos.
40. Relacionamentos TEM UM
Composição
Um objeto “O1” é definido pela composição de
alguns outros objetos;
Se o objeto “O1” for destruído, todos os objetos
nele contidos serão também destruídos;
Ou seja, existe uma dependência “forte” entre o
objeto “O1” e seus objetos contidos.
43. Seção Mundo Java
Especializada em Java;
Revista de maior circulação
nacional sobre o tema;
Edição 135;
Java 8;
Primeiros passos...;
http://www.devmedia.com.
br/revistas/
48
44. Bibliografia
Caelum. Apostila do curso Java e Orientação a Objetos.
Disponível em: http://www.caelum.com.br/apostilas/
Kathy Sierra e Bert Bates. Java Use a Cabeça. 2º Edição.
AltaBooks – Rio de Janeiro, 2007.
Prof. Sérgio Soares. Orientação a Objetos e Java. Disponível
em:
<http://www.cin.ufpe.br/~if101/especializacao/Java2.html>
Prof. Jacques Sauvé. Orientação a Objetos. Disponível em:
<http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/p2-
2.htm>
Princípios da Orientação à Objetos 51