aula 02 - principios da orientação a objetos (poo)

44
Metodologia e Linguagem de Programação Prof. Daniel Brandão

Upload: daniel-brandao

Post on 18-Feb-2017

811 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Aula 02 - Principios da Orientação a Objetos (POO)

Metodologia e Linguagem

de Programação

Prof. Daniel Brandão

Page 2: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 3: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 4: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 5: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 6: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 7: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 8: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 9: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 10: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 11: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 12: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 13: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 14: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 15: Aula 02 - Principios da Orientação a Objetos (POO)

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/

Page 16: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 17: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 18: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 19: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 20: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 21: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 22: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 23: Aula 02 - Principios da Orientação a Objetos (POO)

Classe ≠ Objeto

Princípios da Orientação à Objetos 23

Lembrem-se!

Page 24: Aula 02 - Principios da Orientação a Objetos (POO)

Lâmpada

- EstadoDaLampada

+ acende()

+ apaga ()

+ mostrarEstado ()

Princípios da Orientação à Objetos 24

Atributo

Métodos

Page 25: Aula 02 - Principios da Orientação a Objetos (POO)

Toda e qualquer classe criada

herda da classe “Object”, ou

seja, define e implementa um

objeto;

Chamamos de Herança!

Revisão Java OO

Page 26: Aula 02 - Principios da Orientação a Objetos (POO)

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)

Page 27: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 28: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 29: Aula 02 - Principios da Orientação a Objetos (POO)

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;

Page 30: Aula 02 - Principios da Orientação a Objetos (POO)

Assinatura de main

Ponto de início de toda aplicação Java.

public static void main(String [ ] args){

}

Page 31: Aula 02 - Principios da Orientação a Objetos (POO)

Exemplo do HelloWorld

Page 32: Aula 02 - Principios da Orientação a Objetos (POO)

Como criar e acessar objetos?

Para criar, use o operador new

Para acessar atributos e métodos, utilize o “.”

(ponto)

Exemplo

Page 33: Aula 02 - Principios da Orientação a Objetos (POO)

Exercício 1

Crie um projeto no eclipse denominadoFabricaCelular

Crie a classe Celular e defina os atributos e métodosvistos no slide anterior.

Page 34: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 35: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 36: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 37: Aula 02 - Principios da Orientação a Objetos (POO)

Relacionamentos entre objetos

Agregação e Composição são conhecidos como relacionamentos TEM UM

Herança é um tipo de relacionamento É UM

Page 38: Aula 02 - Principios da Orientação a Objetos (POO)

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.

Page 39: Aula 02 - Principios da Orientação a Objetos (POO)

Relacionamento TEM UM

Exemplo de Agregação

Page 40: Aula 02 - Principios da Orientação a Objetos (POO)

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.

Page 41: Aula 02 - Principios da Orientação a Objetos (POO)

Relacionamento TEM UM

Exemplo de composição

Page 42: Aula 02 - Principios da Orientação a Objetos (POO)

Lâmpada

- EstadoDaLampada

+ acende()

+ apaga ()

+ mostrarEstado ()

47

Atributo

MétodosOrientação à Objetos

Page 43: Aula 02 - Principios da Orientação a Objetos (POO)

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

Page 44: Aula 02 - Principios da Orientação a Objetos (POO)

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