alunos carlos eduardo pontual ceplc fernanda d amorim frsa filipe motta famb leopoldo teixeira lmt
Download
Skip this Video
Download Presentation
Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1

Loading in 2 Seconds...

play fullscreen
1 / 18

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


  • 63 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP 2008.1' - ananda


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

ad