programaÇÃo orientada a objetos: conceitos...

48
PROGRAMAÇÃO ORIENTADA A OBJETOS: Conceitos Iniciais

Upload: lamdieu

Post on 09-Nov-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

PROGRAMAÇÃO ORIENTADA A OBJETOS:

Conceitos Iniciais

● desenvolvimento de sistemas

Contexto 

Modelagem e o gap semântico 

Pai, de onde vêm os bebês? 

De onde vêm os objetos?

Classe: A==============● Atributos:_______________● Métodos:

Objeto

Instanciação

Abstração

Conceitos de orientação a objetos

● Objetos● Classes● Métodos● Atributos● Mensagens● Herança

Conceitos

● Polimorfismo

● Encapsulamento

● Associação

● Abstração

● Interface

● Pacotes

Conceitos de orientação a objetos

“Objetos são instâncias de classes que respondem a mensagens de acordo com os métodos e

atributos, descritos na classe.”

● Objetos

– Real ou Abstrato

– Os objetos possuem informações

– Desempenham ações

– Um objeto é uma instância de uma classe.

Conceitos de orientação a objetos

● Objetos

– Exemplos● Uma fatura;● Uma organização;● Um vôo de avião;● Uma pessoa;● Um lugar● Um objeto(coisa)

Conceitos de orientação a objetos

● Objetos

– Métodos● Ações que manipulam os objetos● Similares as funções da programação

estruturada.– Atributos

● Características do objetos● São manipulados pelos métodos

● Abstração do tipo de dados pessoa

Conceitos de orientação a objetos

Classe: Pessoa==============● Atributos:

● Nome● Idade● Nacionalidade● Etinia

_______________● Métodos:

● Mudar Nome():sem ● Mudar Idade():sem● Pegar Nome():Texto● Pegar Idade():inteiro

● Abstração do tipo de dados pessoa

Conceitos de orientação a objetos

Objeto: Japonesa==============● Atributos:

● Nome: Suzuki● Idade: 27● Nacionalidade: Japonesa● Etinia: Amarela

_______________● Métodos:

● Mudar Nome● Mudar Idade● Pegar Nome● Pegar Idade

● Abstração do tipo de dados pessoa ambiente acadêmico

Conceitos de orientação a objetos

Alunos Professor Coordenador

Secretária

Professor

● Abstração do tipo de dados pessoa ambiente acadêmico

Conceitos de orientação a objetos

Classe: Aluno==============● Atributos:

● Nome● Nascimento● Cpf● Matricula

_________________● Métodos:

● Pegar Matricula● Mudar Matricula

Classe: Professor==============● Atributos:

● Nome● Nascimento● Cpf● Identificador● Titulação

___________________● Métodos:

● Pegar Identificador● Mudar Identificador

Classe: Coordenador==============● Atributos:

● Nome● Nascimento● Cpf● Identificador● Titulação● Curso

___________________Métodos:

● Pegar Identificador● Mudar Identificador

Classe: Secretária==============● Atributos:

● Nome● Nascimento● Cpf● Setor

_______________● Métodos:

● Pegar Setor● Mudar Setor

Objeto: Coordenador==============

● Atributos:● Nome: Lucas● Idade: 45● Cpf: 887● Identificador: 047● Titulação: Doutor● Curso: Sistemas

___________________Métodos:

● Pegar Identificador● Mudar Identificador

● Instanciação dos tipo de dados pessoas ambiente acadêmico

Conceitos de orientação a objetos

Objeto: Aluno==============

● Atributos:● Nome: Maria● idade: 18● Cpf: 333● Matricula: 33301

_________________● Métodos:

● Pegar Matricula● Mudar Matricula Objeto: Professor

==============● Atributos:

● Nome: Pedro● Idade: 38● Cpf: 212● Identificador: 001● Titulação: Mestre

___________________● Métodos:

● Pegar Identificador● Mudar Identificador

Objeto: Secretária==============

● Atributos:● Nome: Camila● Idade: 25● Cpf: 771● Setor: Atendimento_______________

● Métodos:● Pegar Setor● Mudar Setor

● Abstração do tipo de dados pessoas consultório odontológico

Conceitos de orientação a objetos

DentistaSecretária Paciente

● Abstração do tipo de dados pessoas consultório odontológico

Conceitos de orientação a objetos

Classe: Paciente==============● Atributos:

● Nome● Idade● Cpf● Matricula● Endereço

_________________● Métodos:

● Pegar Matricula● Mudar Matricula

Classe: Dentista==============● Atributos:

● Nome● Idade● Cpf● CRO

___________________● Métodos:

● Pegar CRO● Mudar CRO

Classe: Secretária==============● Atributos:

● Nome● Idade● Cpf● Setor

_______________● Métodos:

● Pegar Setor● Mudar Setor

Objeto: Dentista==============

● Atributos:● Nome: Pedro● Idade: 33● Cpf: 058● CRO: 987

__________________● Métodos:

● Pegar CRO● Mudar CRO

● Instanciação dos tipo de dados pessoas ambiente acadêmico

Conceitos de orientação a objetos

Objeto: Paciente==============● Atributos:

● Nome: Ademar● Idade: 12● Cpf: Nulo● Matricula: 14● Endereço: rua

_________________● Métodos:

● Pegar Matricula● Mudar Matricula

Objeto: Secretária==============

● Atributos:● Nome: Camila● Idade: 25● Cpf: 771● Setor: Atendimento_______________

● Métodos:● Pegar Setor● Mudar Setor

Conceitos de orientação a objetos

● Classe

– Representa um conjunto de objetos– Define o comportamentos e estados do objeto

● Mensagem

– Chamada a um objeto que invoca um método.● Instância

– é um objeto que tem suas propriedades definidas na descrição da classe

Conceitos de orientação a objetos

● MensagemObjeto: Dentista

==============● Atributos:

● Nome: Lula● Idade: 53● Cpf: 171● CRO: 0171

__________________● Métodos:

● Pegar CRO● Mudar CRO

Objeto: Paciente==============● Atributos:

● Nome: Ademar● Idade: 12● Cpf: Nulo● Matricula: 14● Endereço: rua

_________________● Métodos:

● Pegar Matricula● Mudar Matricula

Objeto: Consultório==============

● Atributos:● Nome: OdondoBRAS● Proprietário: Dilma

_______________● Métodos:

● Agendar Consulta(x, y,z)● Consultar Agenda(A)Agendar Consulta

Consultar A

genda

Conceitos de orientação a objetos● Herança

– Mecanismo que permite uma classe herdar de outra classe seus comportamentos

Herda Herda

Pai Mãe

Filho

Conceitos de orientação a objetos● Herança

Classe: Aluno==============● Atributos:

● Nome● Nascimento● Cpf● Matricula

_________________● Métodos:

● Pegar Matricula● Mudar Matricula

Classe: Professor==============● Atributos:

● Nome● Nascimento● Cpf● Identificador● Titulação

___________________● Métodos:

● Pegar Identificador● Mudar Identificador

Classe: Coordenador==============● Atributos:

● Nome● Nascimento● Cpf● Identificador● Titulação● Curso

___________________Métodos:

● Pegar Identificador● Mudar Identificador

Classe: Secretária==============● Atributos:

● Nome● Nascimento● Cpf● Setor

_______________● Métodos:

● Pegar Setor● Mudar Setor

Conceitos de orientação a objetos● Herança

Objeto: Pessoa==============

● Atributos:● Nome: Maria● idade: 18● Cpf: 333

_________________● Métodos:

● Pegar CPF()● Mudar CPF(X)

Classe: Pessoa==============

● Atributos:● Nome● idade● Cpf

_______________● Métodos:

● Pegar CPF()● Mudar CPF(X)

Conceitos de orientação a objetos

● Herança

Classe: Aluno==============● Atributos:

● Matricula _________________● Métodos:

● Pegar Matricula● Mudar Matricula

Classe: Professor==============● Atributos:

● Identificador● Titulação

___________________● Métodos:

● Pegar Identificador● Mudar Identificador

Classe: Coordenador==============● Atributos:

● Identificador● Titulação● Curso

___________________Métodos:

● Pegar Identificador● Mudar Identificador

Classe: Secretária==============● Atributos:

● Setor_______________● Métodos:

● Pegar Setor● Mudar Setor

Classe: Pessoa==============

● Atributos:● Nome● idade● Cpf

_______________● Métodos:

● Pegar CPF()● Mudar CPF(X)

Conceitos de orientação a objetos● Herança

Objeto: Coordenador==============

● Atributos:● Nome: Lucas● Idade: 45● Cpf: 887● Identificador: 047● Titulação: Doutor● Curso: Sistemas

___________________Métodos:

● Pegar Identificador● Mudar Identificador● Pegar CPF()● Mudar CPF(X)

Objeto: Aluno==============

● Atributos:● Nome: Maria● idade: 18● Cpf: 333● Matricula: 33301

_________________● Métodos:

● Pegar Matricula● Mudar Matricula● Pegar CPF()● Mudar CPF(X)

Objeto: Professor==============

● Atributos:● Nome: Pedro● Idade: 38● Cpf: 212● Identificador: 001● Titulação: Mestre

___________________● Métodos:

● Pegar Identificador● Mudar Identificador● Pegar CPF()● Mudar CPF(X)

Objeto: Secretária==============

● Atributos:● Nome: Camila● Idade: 25● Cpf: 771● Setor: Atendimento_______________

● Métodos:● Pegar Setor● Mudar Setor● Pegar CPF()● Mudar CPF(X)

Objeto: Aluno==============

● Atributos:● Nome: Maria● idade: 18● Cpf: 333● Matricula: 33301

_________________● Métodos:

● Pegar Matricula● Mudar Matricula● Pegar CPF()● Mudar CPF(X)

Conceitos de orientação a objetos● Associação

– Permite que um objeto utilize recursos de outro objeto.

Classe: Consultório=======================

● Atributos:● Nome: OdondoBRAS● Proprietário: Dilma● Lista de Pacientes

________________________● Métodos:

● Agendar Consulta(x, y,z)● Consultar Agenda(A)

Classe: Paciente==============● Atributos:

● Nome● Idade● Cpf● Matricula● Endereço

_________________● Métodos:

● Pegar Matricula● Mudar Matricula

Conceitos de orientação a objetos

● Encapsulamento

– Separa aspectos internos e externos de um objeto.

– Impede o acesso não autorizado a propriedades do objeto.

Conceitos de orientação a objetos

● Encapsulamento

buscar(termo)

Algoritmo de BuscaInterface

Conceitos de orientação a objetos

● Encapsulamento

Pessoa-------------------------------

publico Nomeprivado idadeprotegido Cpf

-------------------------------privado Pegar CPF()publico Mudar CPF(X)Protegido Checar CPF(Y)

Conceitos de orientação a objetos

● Encapsulamento– Três características do encapsulamento

● Abstração – é o processo de simplificar um problema

difícil

Conceitos de orientação a objetos

● Encapsulamento– Três características do encapsulamento

● Ocultação da implementação – Tipo Abstrato de Dados

● não precisa saber como tais valores são representados internamente

Pessoa-------------------------------

protegido Nomeprotegido idadeprotegido Cpf

-------------------------------publico Pegar CPF()publico Mudar CPF()publico Checar CPF()

Array, Vetor

acessá-la por meio das operações que ela suporta

Conceitos de orientação a objetos

● Encapsulamento– Três características do encapsulamento

● Divisão da responsabilidade – Cada objeto deve executar uma função –

sua responsabilidade – e executá-la bem.

Pessoa-------------------------------

protegido Nomeprotegido idadeprotegido Cpf

-------------------------------publico Pegar CPF()publico Mudar CPF()

Aluno-------------------------------

protegido Matriculaprotegido Curso-------------------------------publico Pegar Curso()publico Mudar Matricula()publico Checar CPF()

Conceitos de orientação a objetos

● Polimorfismo

– Permite que uma estrutura possua várias formas

● Sobrecarga de Métodos e Construtores

Conceitos de orientação a objetos

● Polimorfismo

Pessoa---------------------------------------protegido Nomeprotegido idadeprotegido Cpf---------------------------------------publico Pegar CPF()publico Mudar CPF()publico Mudar CPF(X)

Carro----------------------------------------------------protegido Marcaprotegido Anoprotegido Chaveprotegido Dono----------------------------------------------------publico Ligar Carro(Chave)publico Ligar Carro(Chave, Senha)

Conceitos de orientação a objetos

● Classe Abstrata

– Usada para representar conceitos– Representa uma classe que não pode ser

instanciada– Ela pode ser herdada

Pessoa Abstrata-------------------------------

protegido Nomeprotegido idadeprotegido Cpf

-------------------------------publico Pegar CPF()

Classe Aluno-------------------------------protegido Matriculaprotegido Curso-------------------------------publico Pegar Curso()

Objeto Aluno-------------------------------protegido Matriculaprotegido Cursoprotegido Nomeprotegido idadeprotegido Cpf-------------------------------publico Pegar Curso()publico Pegar CPF()

Conceitos de orientação a objetos

● Classe Abstrata

– Método Abstrato● Obriga a classe que herdar, escrever o método como

descrito na classe pai.

Pessoa Abstrata-------------------------------

protegido Nomeprotegido idadeprotegido Cpf

-------------------------------publico Pegar CPF()publico abstrato Alterar CPF()

Classe Aluno-------------------------------protegido Matriculaprotegido Curso-------------------------------publico Pegar Curso()publico Alterar CPF()

Objeto Aluno-------------------------------

protegido Matriculaprotegido Cursoprotegido Nomeprotegido idadeprotegido Cpf-------------------------------publico Pegar Curso()publico Pegar CPF()publico Alterar CPF()

Conceitos de orientação a objetos

● Acoplamento entre classes– Nível de dependências das classes

Pessoa Abstrata-------------------------------

protegido Nomeprotegido idadeprotegido Cpf

-------------------------------publico Pegar CPF()

Classe Aluno-------------------------------protegido Matriculaprotegido Curso-------------------------------publico Pegar Curso()

Alto Acoplamento

Conceitos de orientação a objetos

● Acoplamento entre classes– Nível de dependências das classes

Classe: Consultório=======================

● Atributos:● Nome: OdondoBRAS● Proprietário: Dilma● Lista de Pacientes

________________________● Métodos:

● Agendar Consulta(x, y,z)● Consultar Agenda(A)

Classe: Paciente==============● Atributos:

● Nome● Idade● Cpf● Matricula● Endereço

_________________● Métodos:

● Pegar Matricula● Mudar Matricula

Baixo Acoplamento

Conceitos de orientação a objetos

● Interface

– Funciona como um contrato entre um objeto com o mundo externo.

Contrato(Interface)

ObjetoMundo Externo

Conceitos de orientação a objetos

● Interface

– O que fazer com a nota do aluno?Classe: Nota==============● Atributos:

● Nome● Tipo● Valor

Interface: Nota Aluno==============● Métodos:

● Visualizar

Interface: Nota Professor==============● Métodos:

● Visualizar● Inserir(Nota)

Interface: Nota Coordenador==============● Métodos:

● Visualizar● Modificar(Nota)

Conceitos de orientação a objetos● Interface

– O que fazer com a nota do aluno?

Classe: Aluno==============● Atributos:

● Matricula _________________● Métodos:

● Pegar Matricula● Mudar Matricula

Classe: Professor==============● Atributos:

● Identificador● Titulação

___________________● Métodos:

● Pegar Identificador● Mudar Identificador

Classe: Coordenador==============● Atributos:

● Identificador● Titulação● Curso

___________________Métodos:

● Pegar Identificador● Mudar Identificador

Classe: Nota=============● Atributos:

● Nome● Tipo● Valor

Interface: Nota Aluno==============● Métodos:

● Visualizar(Nota)

Interface: Nota Professor==============● Métodos:

● Visualizar(Nota)● Inserir(Nota)

Interface: Nota Coordenador==============● Métodos:

● Visualizar(Nota)● Modificar(Nota)

Conceitos de orientação a objetos

● Pacotes

– Permite a organização lógica de classes e interfaces.

Classe: Nota==============● Atributos:

● Nome● Tipo● Valor

Interface: Nota Aluno==============

● Métodos:● Visualizar

Interface: Nota Professor==============

● Métodos:● Visualizar● Inserir(Nota)

Interface: Nota Coordenador==============

● Métodos:● Visualizar● Modificar(Nota)

PACOTE NOTA

Conceitos de orientação a objetos

● Pacotes

– Permite a organização lógica de classes e interfaces.

PACOTE SISTEMA

Pacote Pessoas

Pacote Produtos

Pacote BD

Pacote Telas

POO ­ Exemplos

POO ­ Exemplos

POO ­ Exemplos

Conceitos de orientação a objetos

Conceitos de orientação a objetos

Conceitos de orientação a objetos