A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz.

Apresentações semelhantes


Apresentação em tema: "Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz."— Transcrição da apresentação:

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 Motivação A linguagem OO1 foi desenvolvida como passo inicial para abordar os conceitos básicos da orientação a objetos Algumas características interessantes ficaram de fora desta versão inicial da linguagem 2

3 3 Motivação A linguagem OO2 adiciona construtores herança 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 Exemplo Construtor 6 { 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 },

7 Exemplo Construtor – Cont. 7 proc imprimeEstado(){ write("Ligado: " ++ this.ligado); write("Voltagem: " ++ this.voltagem) } }; { Eletrodomestico eletro := new Eletrodomestico(false,110); eletro.imprimeEstado(); eletro.ligar(); eletro.imprimeEstado() }

8 Herança Exemplo 8 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…

9 Herança Exemplo - Cont. 9 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) } },

10 Herança Exemplo – Cont. 10 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) } };

11 Herança Exemplo – Cont. 11 { 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() }

12 Herança Exemplo – Cont. 12 { 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() }

13 Exercícios Implementar Overloading Implementar Polimorfismo Adicionar operador super Adicionar modificadores de acesso 13


Carregar ppt "Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz."

Apresentações semelhantes


Anúncios Google