Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1
description
Transcript of Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1
![Page 1: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/1.jpg)
Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1)Projeto PLP 2008.1
Alunos:
Carlos Eduardo Pontual (ceplc)
Fernanda d'Amorim (frsa)
Filipe Motta (famb)
Leopoldo Teixeira (lmt)
![Page 2: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/2.jpg)
2
Linguagem OO2
Estende a LOO1 com os seguintes recursos: Herança simples entre classes Redefinição de métodos Ligação Dinâmica Expressão InstanceOf Comando Cast Superclasse Object Modificadores de acesso em métodos Modificador super
![Page 3: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/3.jpg)
3
Proposta do Projeto
Inserção do conceito de Interfaces
– Implementação de interfaces (uma ou mais) por classes concretas
– Herança simples entre interfaces Inserção do conceito de Classes Abstratas
– Inserção do conceito de métodos abstratos
– Classes abstratas devem possuir pelo menos um método abstrato
– Herança simples entre classes abstratas
![Page 4: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/4.jpg)
4
Modificações na BNF - 1
Definição de programa Definição de programa Definição de programa
Programa ::= "{" [ Declaracoes ";" ] Comando "}"
Declaracoes ::= DecInterface| DecClasse
| Declaracoes “,” Declaracoes
![Page 5: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/5.jpg)
5
Modificações na BNF - 2
Definição de Interface
DecInterface ::=
"interface" Id ["extends" Id] "{" ListaAssinaturaMetodo "}"
ListaAssinaturaMetodo ::= AssinaturaMetodo
| AssinaturaMetodo "," ListaAssinaturaMetodo
AssinaturaMetodo ::=
modAcesso "proc" Id "(" [ListaDeclaracaoParametro] ")"
![Page 6: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/6.jpg)
6
Modificações na BNF - 3
Definição de Classe Abstrata
DecClasse ::= DecClasseAbstrata
| DecClasseConcreta
DecClasseAbstrata ::= "abstract" "classe" Id ["extends" Id] "{" CorpoClasseAbstrata "}"
CorpoClasseAbstrata ::= DecVariavel
| DecProcedimento
| CorpoClasseAbstrata";" CorpoClasseAbstrata
![Page 7: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/7.jpg)
7
Modificações na BNF - 4
Definição de Classe Concreta
DecClasseConcreta ::= "classe" Id ["extends" Id] ["implements" ListaInterface] "{" CorpoClasseConcreta "}"
CorpoClasseConcreta ::= DecVariavel
| ListaDecProcConcreto
| CorpoClasseConcreta ";" CorpoClasseConcreta
ListaInterface ::= Id
| Id "," ListaInterface
![Page 8: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/8.jpg)
8
Modificações na BNF - 5
Definição de Procedimentos
DecProcedimento ::= DecProcConcreto
| DecProcAbstrato
| DecProcedimento "," DecProcedimento
DecProcConcreto ::= AssinaturaMetodo "{" Comando "}"
ListaDecProcConcreto ::= DecProcConcreto
| DecProcConcreto "," ListaDecProcConcreto
DecProcAbstrato ::= "abstract" AssinaturaMetodo
![Page 9: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/9.jpg)
9
Status do Projeto
Inserção do conceito de Interfaces
– Implementação de interfaces (uma ou mais) por classes concretas
– Herança simples entre interfaces Inserção do conceito de Classes Abstratas
– Inserção do conceito de métodos abstratos
– Classes abstratas devem possuir pelo menos um método abstrato
– Herança simples entre classes abstratas
![Page 10: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/10.jpg)
10
![Page 11: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/11.jpg)
11
![Page 12: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/12.jpg)
12
![Page 13: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/13.jpg)
13
![Page 14: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1](https://reader036.fdocumentos.com/reader036/viewer/2022082822/568153db550346895dc1d23d/html5/thumbnails/14.jpg)
14
Dúvidas?