programação orientada a objetosrosalvo.oliveira/disciplinas/2012_1/...• um objeto é parte de...

26

Upload: others

Post on 07-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação
Page 2: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Programação Orientada a Objetos

Engenharia da Computação

Professor: Rosalvo Ferreira de Oliveira Neto

Page 3: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Dados Pessoais

Rosalvo Ferreira de Oliveira Neto

• MSc. em ciência da computação (UFPE)

[email protected]

• www.univasf.edu.br/~rosalvo.oliveira

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto 3

Page 4: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Tópicos

•Conceitos Gerais

•Conceitos básicos de Orientação Objeto

• Classe;

• Objeto;

• Instanciar;

• Atributo;

• Estado;

• Identidade;

• Método;

• Encapsulamento;

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

•Mensagem; •Interface

Page 5: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Conceitos Gerais

O que é o paradigma orientado a objeto?

O que é um paradigma?

Um modelo ou um padrão.

Em outras palavras: É uma forma de abordar

um problema, segundo um conjunto de

procedimentos, valores ou conceitos que

direcionam o pensamento.

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 6: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Conceitos Gerais

Por que Programar orientado a objeto?

Compreensão melhor do problema/solução;

Correção do sistema desenvolvido/proposto;

Manutenção do sistema desenvolvido;

Reutilização do sistema desenvolvido;

Extensão do sistema desenvolvido.

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 7: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Linguagens Orientadas a Objetos - Pura (Segundo Alan Kay)

Cinco regras

•Everything in an object.

•A program is a set of objects telling each other what to do by sending messages.

•Each object has its own memory (made up by other objects).

•Every object has a type.

•All objects of a specific type can receive the same messages

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 8: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Conceito de Objeto

Um objeto é um encapsulamento de dados

Um objeto tem:

• Identidade (uma referencia única),

• Estado (também chamado de característica)

• Comportamento

Um objeto é uma instancia de um tipo de dado abstrato

Um tipo de dado abstrato é implementado através de uma classe

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 9: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Encapsulamento

•Os dados podem ser encapsulados de tal forma que tornam-se invisível para o"mundo exterior“;

•Dados podem devem ser acessados apenas via métodos.

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 10: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Classe vs. Objeto

Classe

• A descrição das propriedades comuns de um conjunto de objetos.

• Um conceito.

• Uma classe é uma parte do programa.

Objeto

• Uma representação das propriedades de uma única instância.

• Um objeto é parte de dados e execução de um programa.

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 11: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Tipo e Interface

Um objeto tem um tipo uma interface

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

O conjunto de mensagens que um objeto pode receber é denominado interface do objeto

Page 12: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Instanciando Classes

•Instanciar é um mecanismo onde objetos são criados a partir de uma classe

•Um mecanismo no qual é dado um estado inicial a um objeto

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Classe: Carro

modelo: texto

cor: texto

valor: real

Objeto do tipo Carro

modelo: Gol

cor: Preta

valor: R$ 33.000,00

Instanciar

Page 13: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Interação entre Objetos

•Interação entre objetos acontece via mensagem

•Um objeto O1 interage com outro objeto O2 por chamar um método em O2

•O1 e O2 deve ser relacionado para se comunicar.

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 14: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Atributo, Estado e Identidade

•O que é um atributo?

•O que é um estado?

•O que é uma identidade?

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 15: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Atributo, Estado e Identidade

•O que é um atributo?

•O que é um estado?

•O que é uma identidade?

Vejamos um exemplo:

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 16: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Exemplo

•Em uma universidade existem inúmeros professores, cada um com uma matrícula SIAPE, um nome, uma área de conhecimento, uma titulação, etc..

•Cada um é um objeto.

•Porém é possível perceber que todos os professores tem o mesmo conjunto de informações relevantes ao sistema e que além disso todos desempenham as mesmas ações.

•Esta observação nos leva a identificar/definir a classe professor.

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 17: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Classe professor

O professor Raimundo O professor Girafales

Page 18: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

As informações sobre os professores são denominadas atributos, ou seja, cada um dos professores tem o mesmo conjunto de atributos.

Os valores dos atributos podem ser iguais entre os objetos da mesma classe.

Por exemplo:

- O professor Raimundo e o professor Girafales podem pertencer à mesma área de conhecimento.

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 19: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

As informações sobre os professores são denominadas atributos, ou seja, cada um dos professores tem o mesmo conjunto de atributos.

Os valores dos atributos podem ser iguais entre os objetos da mesma classe.

Por exemplo:

- O professor Raimundo e o professor Girafales podem pertencer à mesma área de conhecimento.

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 20: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

O professor Raimundo pode ter o atributo titulação igual a mestre, cursar um doutorado, e passar o valor deste atributo para doutor.

O conjunto dos valores dos atributos de um objeto em um dado instante caracteriza o seu estado.

OBS.: Normalmente quando um objeto é instanciado são atribuídos valores padrões para seu atributos.

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 21: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

A identidade de um objeto é a propriedade segundo a qual cada objeto (independente de sua classe ou estado atual) pode ser identificado e tratado como uma entidade distinta.

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 22: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Métodos

As ações desempenhadas por um objeto são definidas por

métodos (funções).

Ou seja, um método constitui um comportamento de um

objeto representado por um conjunto de instruções.

Logo, na classe professor existirá um método para registrar

notas, outro para registrar faltas e assim por diante.

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 23: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Encapsulamento

No contexto do paradigma da orientação a objeto, encapsulamento é o agrupamento de procedimentos/funções em torno de dados. Sendo mais técnico, trata-se de encapsular o estado dentro de mecanismos procedurais/funcionais para acessar e modificar aquele estado

Com base no princípio do encapsulamento podemos definir os conceitos de ocultamento de informação/implementação

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 24: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto

Page 25: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação

Dúvidas

Page 26: Programação Orientada a Objetosrosalvo.oliveira/Disciplinas/2012_1/...• Um objeto é parte de dados e execução de um programa. Univasf – Engenharia de Computação – Programação