Java aula 02

Preview:

Citation preview

Orientação a

Objetos

this.tópicos

Orientação a ObjetosNoção Histórica

Paradigma Estruturado x Orientado a Objetos

AbstraçãoObjeto

Classe

this.contexto

1960 - 1970Império do Paradigma Estruturado

Grandes investimentos em hardware

Poucas estratégias para construçãode softwares

1960 - 1970Orçamento

Prazo Manutenção

Qualidade

Gerência

Requisitos

1960 - 1970Elaboração de técnicas de engenharia de software

Orientação a Objetos

Novas técnicas de gerência

1971 - 1975SmallTalk

Alan Curtis Kay

XEROX PARC

Samalltalk-72

Logo, Lisp e Simula-67

1975 - 1980SmallTalk

Revisão e ampliação

Criação de VMs:

HP, DEC, Apple, IBM…

this.comparações

Estruturado

Dados Comportamento

Entrada Saída

Programa

Dados

Estruturado

Escrita de Bibliotecas

Modularização

Estruturas de Dados

Estruturado

Depuração

Procedimentos bem definidos

Criação de Tipos de Dados

EstruturadoEscalabilidade

Reutilização de Código

Encapsulamento

Extensibilidade

Orientado a Objetos

Abstração

Reutilização

Crise do Software

Modularização

Entrada Saída

Programa

Orientado a Objetos

ReutilizávelManutenível

Natural

Confiável

Extensível

Oportuno

Orientado a Objetos

“Programação egoísta”

POO é linguagem

Medo de reutilizar

OO é solução para tudo

this.abstração

Problema Análise Características Solução

Abstração

Alice

nome

notas

frequência

tamanho do pé

tipo de sangue

peso

altura

média final

medida cintura

cor do cabelo[estudante]

Simplicidade

Construção de Modelos

OperaçõesClassificação

Decomposição

Generalização Associação

Instanciação

Composição

Classificação

portas

estacionarodas

ar-condicionado

motor

câmbio

placas

locomove

volante

ClassificaçãoEstabelecimento de categorias de objetos com base em suas características comuns.

Origina classes

Instanciação Honda civic preto da Carol

Crossfox laranja do

Thiago

Hillux prata do Franzé

Generalização

Generalizaçãomédicos enfermeiros

Generalizaçãonome

endereço

telefone

salário

CRM

especialidade

consultas

nome

endereço

telefone

salário

CRE

médico enfermeiros

GeneralizaçãoCRM

especialidade

consultas

CRE

médico enfermeiros

nome

endereço

telefone

salário

funcionário

CRM

especialidade

consultas CRE

médico

enfermeiros

nome

endereço

telefone

salário

funcionário

GeneralizaçãoExtração de característicascomuns a um conjunto declasses para criar um classe mais genérica.

GeneralizaçãoRelação “é um tipo de…”

O médico é um tipo de funcionário.

O ônibus é um veículo.

GeneralizaçãoResponsável pelo estabelecimento de herança entre os objetos.

O médico possui um nome.

O enfermeiro possui um telefone.

CRM

especialidade

consultas CRE

médico

enfermeiros

nome

endereço

telefone

salário

funcionário

EspecializaçãoProcesso de identificação de características que especializam uma classe mais geral.

“inverso” da generalização.

Composiçãobateria

auto-falantes

sensores

tela

câmera

botões

ComposiçãoObjetos complexos são difíceis de criar, gerenciar e manter.

Reutilização!

ComposiçãoOperação que permite a união de vários objetos para compor um outro

agregaçãoassociação

Agregaçãomotor

roda

farol

retrovisor

câmbio

porta

todo partes

AgregaçãoCaracterizado pela relação “tem um”

Um carro tem um motor.

Um médico tem um nome.

AgregaçãoForteA existência do todo não faz sentido sem as partes.

nome, idade, sexo de uma pessoa.

Associação

editora escritor

contratar

Associação

editora escritor

contratar

Associação

editora

contratarescritor

Associação

editora escritor

contratar

escritor

contratar

Associação

editora

Associação

As partes e o todo existem independentemente.

produto e vendedor em uma mercantil.

Fraco

Decomposiçãohard drive

teclado

mouse

monitor

cpu

placa de vídeo

DecomposiçãoProcesso de identificação de entidades-todo de um objeto complexo.

this.objeto

atributos

métodos

estado interno

comportamento

Objeto

atributos

métodos

Objetobase do software

cumprem requisições

mensagens

requisição -> método

relacionamentos

variáveis

Atributo

inacessíveis diretamente

característica

comportamentoMétodo

invocado por mensagens

alteram ou não os valores dos atributos

número de olhos número de pés

número de dentes cor da pele

correr morder

piscar gritar

atirar gosma pular

representamoperações de abstração

Relacionamentos

Mensagens

Meio usado para os objetos se comunicarem.

Mensagens

Para cada mensagem enviada, deve haver uma resposta.

Mensagens

Representam “requisições"de serviços.

video player

file manager

open “mVideo.avi”

video player

file manager

objeto videoFile

requisiçãoargumentos

mensagem

emissorreceptor

professor.lecione()

cachorro.latir()

calculadora.divida(4, 2)

this.classe

Veículo

rodas

velocidade máxima

assentos

locomover

farol

buzinaconsumo

acelerar

trocar marcha

frenar

estacionar

abastecer

Abstração das características comuns de um tipo de objetos

Classeatributos

comportamentos

+

Classe

classe objeto

this.protocolos

this.exercícios

Recommended