Alunos carlos eduardo pontual ceplc fernanda d amorim frsa filipe motta famb leopoldo teixeira lmt
This presentation is the property of its rightful owner.
Sponsored Links
1 / 18

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


  • 47 Views
  • Uploaded on
  • Presentation posted in: General

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. Proposta do Projeto. Inserção do conceito de Interfaces

Download Presentation

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

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Alunos carlos eduardo pontual ceplc fernanda d amorim frsa filipe motta famb leopoldo teixeira lmt

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


Proposta do projeto

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 que não herdam de outra classe abstrata devem possuir pelo menos um método abstrato

    • Herança simples entre classes abstratas


Contribui es adicionais

Contribuições adicionais

  • Overloading

    • Uma classe pode definir mais de um método com o mesmo nome, contanto que tenham parâmetros de tipos diferentes

  • Um programa é um comando

    • Declarações de classes e interfaces são opcionais

  • Corpo da classe

    • Procedimentos e atributos podem ser declarados em qualquer ordem dentro da declaração da classe


Interface

Interface

  • Novos mapeamentos no ambiente

    • Pilha de interfaces declaradas

    • Id de classe  Lista de interfaces

  • Alterações na BNF/Parser

  • Alteração de classes existentes

    • DecClasse, ExpInstanceOf

  • Introdução de novas classes

    • DeclaracaoInterface, DefInterface, ListaInterface, InterfaceNaoDeclaradaException, InterfaceJaDeclaradaException


Modifica es efetuadas

Modificações efetuadas

  • Introdução de nova classe

    • RelacaoClasseInterface (fecho)

    • Auxilia na avaliação de instanceOf

  • Ao contrário das classes, as interfaces não herdam de Object

  • ChecaTipo

    • Verifica quantidade, ordem e tipos dos parâmetros da interface

    • Verifica se interface a ser estendida por outra existe

    • Classes e interfaces não podem ter o mesmo nome


Classe abstrata

Classe Abstrata

  • Reorganização das classes

    • DecClasseICABS

      • DecClasseConcreta

      • DecClasseAbstrata

    • DecProcedimentoICABS

      • DecProcedimentoConcreto

      • DecProcedimentoAbstrato

  • Algo a mais?


Modifica es na bnf 1

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


Modifica es na bnf 2

Modificações na BNF - 2

  • Definição de Interface

DecInterface ::=

  • "interface" Id ["extends" Id] "{" ListaAssinaturaMetodo "}"

  • | DecInterface "," DecInterface

    ListaAssinaturaMetodo ::= AssinaturaMetodo

  • | AssinaturaMetodo "," ListaAssinaturaMetodo

    AssinaturaMetodo ::=

  • modAcesso "proc" Id "(" [ListaDeclaracaoParametro] ")"


Modifica es na bnf 3

Modificações na BNF - 3

  • Definição de Classe Abstrata

DecClasse ::= DecClasseAbstrata

  • | DecClasseConcreta

  • | DecClasse "," DecClasse

    DecClasseAbstrata ::= modAcesso "abstract" "classe" Id ["extends" Id] "{" CorpoClasseAbstrata "}"

    CorpoClasseAbstrata ::= DecVariavel

  • | DecProcedimento

  • | CorpoClasseAbstrata";" CorpoClasseAbstrata


Modifica es na bnf 4

Modificações na BNF - 4

  • Definição de Classe Concreta

DecClasseConcreta ::= modAcesso "classe" Id ["extends" Id] ["implements" Id] "{" CorpoClasseConcreta "}"

CorpoClasseConcreta ::= DecVariavel

  • | ListaDecProcConcreto

  • | CorpoClasseConcreta ";" CorpoClasseConcreta


Modifica es na bnf 5

Modificações na BNF - 5

  • Definição de Procedimentos

DecProcedimento ::= DecProcConcreto

  • | DecProcAbstrato

  • | DecProcedimento "," DecProcedimento

    DecProcConcreto ::= AssinaturaMetodo "{" Comando "}"

    ListaDecProcConcreto ::= DecProcConcreto

  • | DecProcConcreto "," ListaDecProcConcreto

    DecProcAbstrato ::= "abstract" AssinaturaMetodo


Decclasseabstrata

DecClasseAbstrata


Listacorpoclasseabstrata

ListaCorpoClasseAbstrata


Corpoclasseabstrata

CorpoClasseAbstrata


Decprocedimentosimples

DecProcedimentoSimples


Decprocedimentoabstrato

DecProcedimentoAbstrato


Decprocedimentoconcreto

DecProcedimentoConcreto


D vidas

Dúvidas?


  • Login