Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAgustina Carmona Bernardes Alterado mais de 8 anos atrás
1
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz Rafael Dantas Renan Pereira Centro de Informática Universidade Federal de Pernamburco
2
2 Conceitos Básicos A problemática, A linguagem OO1 foi desenvolvida como passo inicial para abordar os conceitos básicos da orientação a objetos. Devido a este fato, algumas características interessantes ficaram de fora desta versão inicial da linguagem. 2
3
3 Conceitos Básicos A problemática, A linguagem OO2 tem como característica adicionar alguns conceitos amplamente conhecidos em linguagens mais maduras, como construtores e a herança, e, consequentemente, prover um maior poder de expressão para a linguagem. 3
4
BNF http://www.cin.ufpe.br/~in1007/lingu agens/OrientadaObjetos2/orientada Objetos2.htmlhttp://www.cin.ufpe.br/~in1007/lingu agens/OrientadaObjetos2/orientada Objetos2.html Adição de Construtor e Herança 4
5
Construtor Métodos especiais chamados automaticamente a cada criação de um objeto Através do comando new Não pssuem valor de retorno e tem o mesmo nome da classe 5
6
Construtor Inicialmente, na linguagem OO1, não existe a definição formal de construtor A classe é criada através de um construtor simples, sem ser possível especializa-lo Linguagens mais sofisticadas permitem essa capacidade 6
7
Construtor Classes Geradas –NewOO2 (ListaExpressao) –DecClasseSimplesOO2 (DecConstrutor) –DecConstrutor (checaTipo, getProcedimento) –DefClasseOO2 –DecVariavelObjetoOO2 7
8
Exemplo Construtor 8 { classe Eletrodomestico{ boolean ligado = false, int voltagem = 220; Eletrodomestico(boolean ligado, int voltagem){ this.ligado := ligado; this.voltagem := voltagem }, proc ligar(){ this.ligado := true }, proc desligar(){ this.ligado := false },
9
Exemplo Construtor – Cont. 9 proc imprimeEstado(){ write("Ligado: " ++ this.ligado); write("Voltagem: " ++ this.voltagem) } }; { Eletrodomestico eletro := new Eletrodomestico(false,110); eletro.imprimeEstado(); eletro.ligar(); eletro.imprimeEstado() }
10
Herança Comandos Modificados: –AtribuicaoOO2 –ChamadaMetodoOO2 –NewOO2 Expressões modificadas: –AcessoAtributoOO2 –AcessoAtributoThisOO2 10
11
Herança Exemplo 11 classe Tv extends Eletrodomestico{ int canal = 3, int volume = 0; Tv(boolean ligado, int voltagem, int canal, int volume){ this.ligado := ligado; this.voltagem := voltagem; this.canal := canal; this.volume := volume }, proc aumentarVolume(){ this.volume := this.volume + 1 }, Continua…
12
Herança Exemplo - Cont. 12 proc diminuirVolume(int volumeMenos){ if(not (this.volume == 0)) then { this.volume := this.volume - volumeMenos } }, proc imprimeEstadoTv(){ write("Ligado: " ++ this.ligado); write("Voltagem: " ++ this.voltagem); write("Canal: " ++ this.canal); write("Volume: " ++ this.volume) } },
13
Herança Exemplo – Cont. 13 classe TvLCD extends Tv{ boolean fullHD = true; TvLCD(boolean ligado, int voltagem, int canal, int volume, boolean fullHD){ this.ligado := ligado; this.voltagem := voltagem; this.canal := canal; this.volume := volume; this.fullHD := fullHD }, proc imprimeEstadoTvLCD(){ this.imprimeEstadoTv(); write("FullHD: " ++ this.fullHD) } };
14
Herança Exemplo – Cont. 14 { Tv tv := new Tv(false,110,13,20); write("Estado Inicial da Tv"); write("------------------------"); tv.imprimeEstado(); tv.imprimeEstadoTv(); write(""); write("Aumentando volume"); write("------------------------"); tv.aumentarVolume(); tv.imprimeEstadoTv() }
15
Herança Exemplo – Cont. 15 { TvLCD tvLCD := new TvLCD(false,110,13,20, true), Tv tv := new Tv(true,220,4,35); write(""); write("TvLCD estado inicial"); write("------------------------"); tvLCD.imprimeEstadoTvLCD (); write(""); write("TvLCD mudando para o canal 50"); write("------------------------"); tvLCD.canal := 50; tvLCD.imprimeEstadoTvLCD (); write(""); write("Diminuindo o volume da Tv em 10"); write("------------------------"); tv.diminuirVolume(10); tv.imprimeEstadoTv() }
16
Exercícios Implementar Overloading Implementar Polimorfismo Adicionar operador super Adicionar modificadores de acesso 16
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.