Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1

14
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)

description

Alunos: Carlos Eduardo Pontual (ceplc) ‏ Fernanda d'Amorim (frsa) ‏ Filipe Motta (famb) ‏ Leopoldo Teixeira (lmt) ‏. Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1. Linguagem OO2. Estende a LOO1 com os seguintes recursos: - PowerPoint PPT Presentation

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

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

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

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

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

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

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

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

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

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

10

Page 11: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1

11

Page 12: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1

12

Page 13: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1

13

Page 14: Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1

14

Dúvidas?