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

Preview:

Citation preview

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: professordanielbrandao@gmail.com

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

Recommended