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

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

Estruturas de Dados Marcio Gonçalves.
Herança, Polimorfismo e Classes Abstratas em Java
Projeto 1.
Modelagem Orientada a Objetos
1 Orientação a Objetos: Herança Alcides Calsavara.
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Iniciação ao Java – Márcio F. Campos
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Animador para a Linguagem Funcional 2 Carlos Eduardo Lima Lucas Roberto Bechert Schmitz Leonardo Lucena.
Alexandre Parra Site: Os Pilares da OO em Java Alexandre Parra Site:
Linguagem de Programação II
Linguagem de Programação II
Interfaces em Java1 Interfaces Prof. Ricardo Linden.
UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS!
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Classes Abstractas.
Mapeamento Objeto-Relacional Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Herança e Polimorfismo
Curso de extensão em Desenvolvimento Web
Aula prática 12 Listas Encadeadas
Introdução a programação (if669cc)
DEFINIÇÃO DE TIPOS – LF3 PLP – Apresentação 2. Equipe Felype Santiago Maria Carolina Paola Rodrigues Rodrigo Cardoso.
Padrão de Projeto Visitor
GEJAVA IV SCJA – Certificação Sun java associado exame cx
Programação Orientada à Objetos
Oberdan B. Ferreira Polimorfismo Oberdan B. Ferreira
Estudo dos Conceitos e Paradigmas de Programação
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio Jackson, Jean, Patrícia, Saulo Centro de Informática.
Augusto Sampaio e Paulo Borba Centro de Informática
Linguagem Orientada a Agentes Allan Lima, Bruno Edson, Nancy Lyra.
Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz
Programação Orientada a Objetos: Reuso
Aula prática 14 Orientação a Objetos – C++ Parte 2
Emanuella Aleixo ( José Antônio Juliana Mafra Marcela Balbino
Introdução às Java Threads
Classes Abstratas P. O. O. Prof. Ângela e Grace.
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
POO II JEAN CARLO MENDES
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
Interfaces POO Avançado.
Classes Abstratas e Interface
Prof.: Bruno Rafael de Oliveira Rodrigues.  Existe para poder servir de molde para outras classes.  Deve ser declarada tal usando-se a palavra chave.
Aula Prática 1 Monitoria IP/CC (~if669). Roteiro 1.Polimorfismo 2.Superclasses Abstratas 3.Dúvidas 4.Exercício.
Linguagem Orientada a Agentes Allan Lima, Bruno Edson, Nancy Lyra.
Linguagem orientada a Aspectos 2 Luiz Carlos d’Oleron Tiago Vinícius.
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Classes Abstratas e Interfaces GX – Aula05 1.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Paradigmas da Programação – Semestre 1 – Aula 8 Professor: Eduardo Mantovani )
Bruno Inojosa MCP .NET Framework
Linguagem II Classes Abstratas Interfaces. Davi Pires Revisão Reuso de código Superclasses e subclasses Composição vs. Herança Construtores.
Parte 3 - Resultados Carlos Eduardo Pontual Fernanda d’Amorim Leopoldo Teixeira Ferramentas para Linhas de Produtos de Aplicações Móveis - FLIP.
1 Java: Modificador abstract para classes e métodos Alcides Calsavara.
Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP Alunos: Carlos Eduardo Pontual (ceplc)‏ Fernanda d'Amorim (frsa)‏
Adriana Carla Projeto de PLP. 2 Roteiro Objetivos Alterações  Contextualização  BNF / Parser  checaTipo()  avaliar() Demonstração.
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
Emanuella Aleixo ( José Antônio Juliana Mafra Marcela Balbino
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz.
Padrão Visitor Paulo Mauricio Gonçalves Jr Rodrigo Teixeira Ramos Paradigmas de Linguagens de Programação Prof. Augusto Sampaio Julho de 2003.
Prof.: Bruno Rafael de Oliveira Rodrigues. Herança Possibilita a uma classe usar campos ou métodos definidos em outra classe. Assim a classe pai possui.
Projeto de Arquitetura de Software
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz.
1. 2 Programação Orientada a Objetos Prof. Maurício Rodrigues de Morais
Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Herança e Polimorfismo Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Jean Carlo mendes
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Linguagem Orientada a Objetos 2
Projeto de PLP (2006.1) Extensão da Linguagem OO1
Transcrição da apresentação:

Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP Alunos: Carlos Eduardo Pontual (ceplc)‏ Fernanda d'Amorim (frsa)‏ Filipe Motta (famb)‏ Leopoldo Teixeira (lmt)‏

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 2

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 3

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 4

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 5

Classe Abstrata Reorganização das classes –DecClasseICABS DecClasseConcreta DecClasseAbstrata –DecProcedimentoICABS DecProcedimentoConcreto DecProcedimentoAbstrato Algo a mais? 6

7 Modificações na BNF - 1  Definição de programa Programa ::= "{" [ Declaracoes ";" ] Comando "}" Declaracoes ::= DecInterface | DecClasse | Declaracoes “,” Declaracoes

8 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] ")"

9 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

10 Modificações na BNF - 4  Definição de Classe Concreta DecClasseConcreta ::= modAcesso "classe" Id ["extends" Id] ["implements" Id] "{" CorpoClasseConcreta "}" CorpoClasseConcreta ::= DecVariavel | ListaDecProcConcreto | CorpoClasseConcreta ";" CorpoClasseConcreta

11 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 12

ListaCorpoClasseAbstrata 13

CorpoClasseAbstrata 14

DecProcedimentoSimples 15

DecProcedimentoAbstrato 16

DecProcedimentoConcreto 17

18 Dúvidas?