Metodologia e Linguagem
de Programação
Prof. Daniel Brandão
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
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
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
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
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
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
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
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
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
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
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
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
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
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 chamadasPrincípios da Orientação à Objetos
15
Fonte: http://store.apple.com/
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
Objeto Conta Bancária
Princípios da Orientação à Objetos 17
O estado atualda conta
Comportamento: operações queuma conta podeexecutar
creditar
debitar
número saldo
“123-x” 54,78
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
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
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
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 objetoscriados a partir damesma classe
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
Classe ≠ Objeto
Princípios da Orientação à Objetos 23
Lembrem-se!
Lâmpada
- EstadoDaLampada
+ acende()
+ apaga ()
+ mostrarEstado ()
Princípios da Orientação à Objetos 24
Atributo
Métodos
Toda e qualquer classe criada
herda da classe “Object”, ou
seja, define e implementa um
objeto;
Chamamos de Herança!
Revisão Java OO
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)
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
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
Como executar aplicações
Uma classe pode definir um método “main”;
É o método responsável pela execução daaplicaçã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 daaplicação;
Assinatura de main
Ponto de início de toda aplicação Java.
public static void main(String [ ] args){
}
Exemplo do HelloWorld
Como criar e acessar objetos?
Para criar, use o operador new
Para acessar atributos e métodos, utilize o “.”
(ponto)
Exemplo
Exercício 1
Crie um projeto no eclipse denominadoFabricaCelular
Crie a classe Celular e defina os atributos e métodosvistos no slide anterior.
Exercício 1
No projeto FabricaCelular crie uma classechamada Programa.
Nesta classe, crie um método main.
Dentro do main, crie uma instância de suaclasse Celular
Acesse e imprima seus atributos no console
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: [email protected]
Orientação à Objetos 40
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
Relacionamentos entre objetos
Agregação e Composição são conhecidos como relacionamentos TEM UM
Herança é um tipo de relacionamento É UM
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 oobjeto “O1” e seus objetos contidos.
Relacionamento TEM UM
Exemplo de Agregação
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 oobjeto “O1” e seus objetos contidos.
Relacionamento TEM UM
Exemplo de composição
Lâmpada
- EstadoDaLampada
+ acende()
+ apaga ()
+ mostrarEstado ()
47
Atributo
MétodosOrientação à Objetos
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
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