PLP 257/2016 prevê congelamento de salários e desligamento ...
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
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)
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
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
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
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] ")"
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
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
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
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
10
11
12
13
14
Dúvidas?