Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Programação Orientada a Objetos
Engenharia da Computação
Professor: Rosalvo Ferreira de Oliveira Neto
Dados Pessoais
Rosalvo Ferreira de Oliveira Neto
• MSc. em ciência da computação (UFPE)
• www.univasf.edu.br/~rosalvo.oliveira
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto 3
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
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
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
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
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
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
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
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
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
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
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
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
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
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Classe professor
O professor Raimundo O professor Girafales
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
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
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
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
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
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
Univasf – Engenharia de Computação – Programação Orientada a Objetos- Prof.: Rosalvo Neto
Dúvidas