cap.2 conceitos de orientação a objetos conceitos de orientação a objetos quaisquer elementos da...

64
Introdução à Programação Orientada a Objeto

Upload: ilda-bandeira-sabrosa

Post on 07-Apr-2016

214 views

Category:

Documents


2 download

TRANSCRIPT

Slide 1

Introduo Programao Orientada a ObjetoCap.2Conceitos deorientao a objetosConceitos de orientao a objetosQuaisquer elementos da natureza aos quais p0ssvel atribuir comportamentos e caractersticas (Termos gerais).Os elementos capazes de representar uma entidade que esteja no domnio de interesse do problema analisado (Termos de computao).

Objetos.Tudo objeto.Conceitos de orientao a objetosTodos os objetos so distinguveis e possuem uma identidade prpria.Promovem o entendimento do mundo real.Do uma base prtica para uma implementao computacional.A decomposio de um problema em objetos depende da natureza do problema e do julgamento do projetista.Um objeto constitudo por atributos e mtodos.

Objetos.Conceitos de orientao a objetosExemplos de Objetos:

PomboPessoaTelefonenibusProdutoNota FiscalOramento

Conceitos de orientao a objetosOs valores de dados assumidos pelos objetos.Podem ser entendidos como variveis ou campos utilizados para armazenar os diferentes valores (Termos em computao).Descrevem as caractersticas do objeto.

AtributosConceitos de orientao a objetosExemplos de atributos:Objeto PessoaAtributos: Nome Altura

Objeto ProdutoAtributos: NomePreoEstoque Atual

Conceitos de orientao a objetosOperaesSo as aes dentro de um mtodo.MtodosSo uma implementao de uma ou mais operaespara uma classe.Operaes e MtodosConceitos de orientao a objetosExemplos de Operaes e Mtodos.

Mtodos.Clculo do dgito

Operaes.Separar o nmero.Calcular o dgito conforme a frmula.

MtodosUm mtodo tem duas partes:assinatura corpo Assinaturanome do mtodoargumentos (parmetros)tipo de resposta (retorno)

Calcdig(x, y numricas) declara m,c,d,u numricasm = x DIV 1000c = x DIV 100 MOD 10d = x DIV 10 MOD 10u = x MOD 10y = ( m*6 + c*7 + d*8 + u*9 ) MOD 11 MOD 10SadaFcalcdig(x numrica) numricadeclara m,c,d,u numricasm = x DIV 1000c = x DIV 100 MOD 10d = x DIV 10 MOD 10u = x MOD 10Fcalcdig = ( m*6 + c*7 + d*8 + u*9 ) MOD 11 MOD 10SadaConceitos de orientao a objetos uma requisio de uma ao junto com argumentos necessrios para a execuo da tarefa solicitada.

MensagensConceitos de orientao a objetosExemplos de Mensagens

MinhaConta.Depositar(100)Conceitos de orientao a objetosUm conjunto de objetos, os quais so agrupados por possurem similaridades em termos de comportamentos(mtodos) e caractersticas(atributos).No criamos os objetos, mas definimos, na classe, os atributos e mtodos necessrios para esta criao.

ClassesConceitos de orientao a objetosInstanciar uma classe criar uma cpia da classe na memria, para uso no programa.Um objeto uma instncia da classe.

InstanciaoConceitos de orientao a objetosPossibilita que as classes compartilhem seus atributos e mtodos.Adota um relacionamento hierrquico.

HeranaConceitos de orientao a objetosClasse baseA classe que concede as caractersticas a uma outra classe.Classe derivadaA classe que herda as caractersticas da classe base.

HeranaConceitos de orientao a objetosExemplo de Herana

Classe base: ProdutoAtributos: Nome, PreoClasse derivada: LivroAtributos: Nome, Preo (herdados de Produto) Nmero de Pginas

Conceitos de orientao a objetosExemplo de Herana

Classe base: FuncionrioAtributos: Nome, EndereoClasse derivada: MotoristaAtributos: Nome, Endereo (herdados de Funcionrio)CNH, CategoriaClasse derivada: SecretariaAtributos: Nome, Endereo (herdados de Funcionrio)Toques por Minutos

Conceitos de orientao a objetosA biblioteca da FACULDADE IMPACTA TECNOLOGIA possui um acervo de obras como livros e peridicos para consultas e emprstimos dos leitores cadastrados. Estes leitores podem ser alunos ou professores da faculdade.Entre os livros existem os de referncia, que s podem ser consultados na prpria biblioteca, e os de livre emprstimo.Os peridicos s pode ser emprestados aos professores, mas existe um servio de fornecimento de cpias aos interessados.Livros, peridicos e artigos podem ser localizados por ttulo, autor, assunto e, no caso de peridicos e artigos, por data de publicao.Identifique as classes e organize em classes bases e derivadas.

Conceitos de orientao a objetosConceitos de orientao a objetosHerana simplesDetermina que uma classe herdar caractersticas de apenas uma classe base.

Herana mltiplaDetermina que uma classe herdar caractersticas de duas ou mais classes bases.

HeranaOrganizar as classes em bases e derivadas.

VeculoVeculo terrestreVeculo areoVeculo militarCaa-aviesAvio comercialTanqueCarro de passeioConceitos de orientao a objetosNo possvel realizar qualquer tipo de instncia.Servem apenas como modelos para classes derivadas (concretas)Todos os mtodos (abstratos) devero ser sobrescritos (implementados) em classes derivadas

Classes abstratas.Conceitos de orientao a objetosExemplo de Classe Abstrata

Classe Abstrata: RecursosHumanos

Atributo: ultimocodigoMtodo: SalvarUltimoCodigo, EmitirRelatrio

Classe derivada : FuncionarioClasse derivada: CargoClasse derivada: DepartamentoConceitos de orientao a objetosCapacidade de um objeto de manter/gravar seu estado para posterior recuperao.

Utilizado principalmente em conjunto a SGBD (Sistema Gerenciador de Bancos de Dados)

PersistnciaConceitos de orientao a objetosFoco nos aspectos essenciais dos objetos, representando apenas caractersticas relevantes ao problema

Separao de fatos relevantes de no relevantes, caracterstica esta fundamental ao bom projetista

Refinamento constante, durante o ciclo de vida do sistema, do modelo conceitual (o que deve ser feito) at o modelo de especificao (como deve ser feito)

AbstraoConceitos de orientao a objetosO objeto disponibilizado com toda a sua funcionalidade, sem a necessidade de conhecermos detalhes internos de como funciona ou como so armazenados. possvel modificar um objeto internamente, acrescentando mtodos.O processo de desenvolvimento de sistemas acelerado e simplificado.

EncapsulamentoConceitos de orientao a objetosCapacidade de assumir vrias formas

Utilizao de mtodos com mesmo nome de uma nica classe base com comportamento especfico para cada classe derivada

Mesmos mtodos com implementaes diferentes para cada classe derivada

PolimorfismoConceitos de orientao a objetosExemplo

Classe base: Polgono Mtodo: Calcular reaClasse derivada: RetnguloAtributos: Largura, ComprimentoMtodo: Calcular reaClasse derivada: TringuloAtributos: Base, AlturaMtodo: Calcular rea

Conceitos de orientao a objetosHerana e polimorfismo.

Reaproveitamento de cdigo.

CompartilhamentoConceitos de orientao a objetosExerccios Pag. 90 Pag.94Conceitos de orientao a objetosExemplosClasse e Objeto em Linguagem de ProgramaoConceitos de orientao a objetos

Identidade:: meu pombo correioComportamento:voarpiarPomboCaractersticas:cor das penas: cinzaformato do bico: curtovelocidade de vo: mdiaConceitos de orientao a objetosImplementao em DelphiA Classe

O Objeto

Conceitos de orientao a objetosImplementao em Java

Conceitos de orientao a objetosImplementao em VB

Conceitos de orientao a objetosPessoa

Identidade: MrioCaractersticas:olhos pretosnasceu em 16/02/70pesa 70kg mede 1,70mComportamento:andarfalarcomerrirConceitos de orientao a objetosClasse PessoaNome: AlfanumricoOlhos: AlfanumricoDataNasc: DataPeso: NumricoAltura: NumricoAndar()Falar()Comer()Rir()Conceitos de orientao a objetosDeclara Novapessoa como PessoaNovapessoa.nome=MrioNovapessoa.Olhos=PretosNovapessoa.Datanasc=16/02/70Novapessoa.Peso=70Novapessoa.Altura=1.70Novapessoa.Andar()Novapessoa.Falar()Novapessoa.Comer()Novapessoa.Rir()Conceitos de orientao a objetosClasse retngulobase: numricoaltura: numrico// mtodosObterDados() Fcalcarea() numricoFcalcarea= base* alturaSada

Exibir(x numrico)

// Programa PrincipalDeclara R como retnguloR.ObterDados()Exibir ( R.Fcalcarea())

Conceitos de orientao a objetosClasse retngulobase: numricoaltura: numrico// mtodosObterDados() Fcalcarea() numricoFcalcarea= base* alturaSada

Exibir(x numrico)

// Programa PrincipalDeclara R como retnguloR.ObterDados()Exibir ( R.Fcalcarea())

Classe nmero nro: numrico// mtodosObterDados()

Fcalcmetade() numrico

Sada

Fcalcdobro() numrico

Sada

Exibir(x numrico)

// Programa PrincipalDeclara N como nmeroN.ObterDados()Exibir (N.Fcalcmetade())Exibir (N.Fcalcdobro()) Conceitos de orientao a objetosClasse nmero nro: numrico// mtodosObterDados()

Fcalcmetade() numrico Fcalcmetade = nro / 2Sada

Fcalcdobro() numrico Fcalcdobro = nro * 2Sada

Exibir(x numrico)

// Programa PrincipalDeclara N como nmeroN.ObterDados()Exibir (N.Fcalcmetade())Exibir (N.Fcalcdobro()) Conceitos de orientao a objetosEscreva o mtodoFcalcvalorreceber() numrico

Onde:htrab - Horas Trabalhadasmtrab Minutos Trabalhadosvlhora Valor da hora

Classe funcionrio htrab: numrico mtrab: numrico vlhora: numrico

// mtodo

Fcalcvalorreceber() numrico

Sada

Conceitos de orientao a objetosClasse funcionrio htrab: numrico mtrab: numrico vlhora: numrico

// mtodo

Fcalcvalorreceber() numrico

Fcalcvalorreceber = ( htrab + mtrab/60) * vlhora

Sada

Conceitos de orientao a objetosClasse vendadepto: numricovlvenda: numrico

// mtodo Fcalcvalorvista() numrico

Sada

Escreva o mtodo Fcalcvalorvista() numrico

Obedecendo a regra de negcio abaixo:

As vendas superiores a 200 do depto 150 ou 180 tm desconto de 12%.

Conceitos de orientao a objetosClasse vendadepto: numricovlvenda: numrico

// mtodo Fcalcvalorvista() numricoSe vlvenda > 200 e (depto = 150 ou depto =180) entoFcalcvalorvista = vlvenda * 0.88 senoFcalcvalorvista = vlvendafim seSada

Conceitos de orientao a objetosClasse notan1: numricon2: numricon3: numrico

// mtodo Comparanotas ( )

SadaComparar as trs notas e exibir a mensagem

Se a 1 nota for maior que as outras notas, exibir: A 1 nota a maior

Se a 2 nota for maior que as outras notas, exibir: A 2 nota a maior

Se a 3 nota for maior que as outras notas, exibir: A 3 nota a maior

Se a 1 e a 2 nota forem iguais e maiores que a 3 nota, exibir: A 1 e a 2 nota so iguais e maiores

Se a 1 e a 3 nota forem iguais e maiores que a 2 nota, exibir: A 1 e a 3 nota so iguais e maiores

Se a 2 e a 3 nota forem iguais e maiores que a 1 nota, exibir: A 2 e a 3 nota so iguais e maiores

Se as trs notas forem iguais, exibir As trs notas so iguaisConceitos de orientao a objetosComparanotas ( )se n1 > n2 E n1 > n3 entoexibir "1 maior"senose n2 > n1 E n2 > n3 entoexibir "2 maior"senose n3 > n1 E n3 > n2 entoexibir "3 maior"senose n1 > n3 entoexibir "1 = 2 e so maiores"senose n2 > n1 entoexibir "2 = 3 e so maiores"senose n1 > n2 entoexibir "1 = 3 e so maiores"senoexibir "3 iguais"fim sesadaConceitos de orientao a objetosClasse aplicacaovalor: numricoqtmeses: numrico

// mtodo Calculameses ( )

SadaEscreva o mtodo para: Quantos meses preciso deixar um valor aplicado at ele ultrapassar a 2000? Numa aplicao que est rendendo 1% ao ms.Conceitos de orientao a objetosClasse aplicacaovalor: numricoqtmeses: numrico

// mtodo Calculameses ( )qtmeses = 0enquanto valor