Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRuth Estrada Rocha 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 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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.