Generics POO. Prof. Marcio Delamaro

Tamanho: px
Começar a partir da página:

Download "Generics POO. Prof. Marcio Delamaro"

Transcrição

1 Generics POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/39

2 O que são Tipos genéricos São uma forma de definir e utilizar classes de forma genérica Dá flexibilidade ao código Evita o uso exagerado de casting Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 2/39

3 Exemplo Vamos supor que você queira implementar a estrutura de uma pilha (push, pop, isempty) usando um array. (nem vou pedir para fazerem, trivial) Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 3/39

4 Pilha implementada public class PilhaInt{ int v[]; int topo; public PilhaInt(){ v = new int[100]; topo = 1; } public int pop(){ int b = v[topo]; topo ; return b; } public void push(int b){ v[topo+1] = b; topo++; } Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 4/39

5 Exemplo Vamos supor que você queira implementar a estrutura de uma pilha (push, pop, isempty) usando um array. Queremos ter pilhas para diferentes tipos de dados. Por exemplo: uma pilha para Integer uma pilha para String uma pilha para Dado Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 5/39

6 Exemplo Vamos supor que você queira implementar a estrutura de uma pilha (push, pop, isempty) usando um array. Queremos ter pilhas para diferentes tipos de dados. Por exemplo: uma pilha para Integer uma pilha para String uma pilha para Dado Solução: Implementar uma pilha que se possa colocar qualquer tipo de objeto Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 6/39

7 Pilha genérica public class Pilha { // qualquer objeto pode ser colocado Object v[]; int topo; //construtor public Pilha() { v = new Object[100]; topo = 1; } Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 7/39

8 Pilha genérica public void push(object b) { v[topo+1] = b; topo++; } public Object pop() { Object b = v[topo]; topo ; return b; } Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 8/39

9 Usando a pilha genérica Pilha p = new Pilha(); Dado d1 = new Dado(), d2 = new Dado(); p.push(d1); p.push(d2); d1 = (Dado) p.pop(); d2 = (Dado) p.pop(); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 9/39

10 Usando a pilha genérica p.push(d1); p.push(new Integer(10)); p.push(d2); d1 = (Dado) p.pop(); d2 = (Dado) p.pop(); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 10/39

11 Usando a pilha genérica p.push(d1); p.push(new Integer(10)); p.push(d2); d1 = (Dado) p.pop(); d2 = (Dado) p.pop(); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 11/39

12 Usando a pilha genérica p.push(d1); p.push(new Integer(10)); p.push(d2); d1 = (Dado) p.pop(); d2 = (Dado) p.pop(); Exception in thread "main" java.lang.classcastexception: java.lang.integer cannot be cast to ssc103.bozo.dados.dado at semgeneric.pilha.main(pilha.java:43) Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 12/39

13 Usando a pilha genérica p.push(10); int k = p.pop(); int j = (Integer) p.pop(); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 13/39

14 Usando a pilha genérica p.push(10); Conversão automática int Integer int k = p.pop(); int j = (Integer) p.pop(); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 14/39

15 Usando a pilha genérica p.push(10); int k = p.pop(); Conversão automática int Integer Erro. Conversão Object int int j = (Integer) p.pop(); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 15/39

16 Usando a pilha genérica p.push(10); int k = p.pop(); Conversão automática int Integer Erro. Conversão Object int int j = (Integer) p.pop(); Conversão automática Integer int Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 16/39

17 Resumindo A implementação da pilha genérica permite utilizar qualquer tipo de objeto; pode levar a erros pela má utilização, por exemplo, empilhando tipos errados requer um grande número de castings, o que pode poluir oo programa. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 17/39

18 Usando generics O uso de generics permite que se defina uma pilha genérica. Qualquer tipo de objeto pode ser colocado nessa pilha. Ao se instanciar a pilha, pode-se dizer qual o tipo de objeto vai ser empilhado. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 18/39

19 Pilha genérica II public class Pilha<T> { T v[]; int topo; public Pilha() { v = (T[]) new Object[100]; topo = 1; } Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 19/39

20 Pilha genérica II public class Pilha<T> { T v[]; int topo; Indica que um tipo vai ser usado como parâmetro na criação do objeto. public Pilha() { v = (T[]) new Object[100]; topo = 1; } Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 20/39

21 Pilha genérica II public class Pilha<T> { T v[]; int topo; O array a ser utilizado tem todos os elementos desse tipo. public Pilha() { v = (T[]) new Object[100]; topo = 1; } Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 21/39

22 Pilha genérica II public class Pilha<T> { T v[]; int topo; O array a ser utilizado tem todos os elementos desse tipo. public Pilha() { v = (T[]) new Object[100]; topo = 1; } Mas é necessário fazer um casting ao alocar o array. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 22/39

23 push e pop? Como ficam? Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 23/39

24 push e pop? public void push(t b) { v[topo+1] = b; topo++; } Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 24/39

25 push e pop? public void push(t b) { v[topo+1] = b; topo++; } Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 25/39

26 push e pop? public void push(t b) { v[topo+1] = b; topo++; } public T pop() { T b = v[topo]; topo ; return b; } Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 26/39

27 Usando a pilha genérica II Pilha<Dado> p = new Pilha<Dado>(); Dado d1 = new Dado(), d2 = new Dado(); p.push(d1); p.push(d2); d1 = p.pop(); d2 = p.pop(); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 27/39

28 Usando a pilha genérica II Pilha<Integer> p2 = new Pilha<Integer>(); p2.push(10); p2.push(15); int k = p2.pop(); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 28/39

29 Usando a pilha genérica II Pilha<Integer> p2 = new Pilha<Integer>(); p2.push(10); p2.push(15); int k = p2.pop(); Conversão int Integer não requer casting; Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 29/39

30 Usando a pilha genérica II Pilha<Integer> p2 = new Pilha<Integer>(); p2.push(10); p2.push(15); int k = p2.pop(); d1 = new Dado(); p2.push(d1); ERRO!!!! Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 30/39

31 Totalmente genérica Mesmo definindo a pilha usando tipo genérico, é possível criar uma pilha totslmente genérica Ou seja, uma pilha que aceite qualquer tipo de objetos Todos objetos misturados Basta não definir o tipo a ser usado Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 31/39

32 Totalmente genérica Pilha p3 = new Pilha(); p3.push(10); p3.push(d1); p3.push("genérico"); int j = (Integer) p3.pop(); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 32/39

33 Totalmente genérica Pilha p3 = new Pilha(); p3.push(10); p3.push(d1); p3.push("genérico"); int j = (Integer) p3.pop(); O compilador emite advertências mas ainda assim permite o uso. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 33/39

34 Restrições de tipo Ao declarar a classe genérica é possível restringir o tipo a ser usado Por exemplo, queremos criar uma pilha em que os elementos tem que ser uma conta bancária. ContaBancaria ContaEspecial ContaPoupanca PoupancaSimple PoupancaOuro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 34/39

35 Restrições de tipo public class PilhaConta<T extends ContaBancaria> { T v[]; int topo; public PilhaConta() { v = (T[]) new ContaBancaria[100]; topo = 1; } Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 35/39

36 Restrições de tipo public class PilhaConta<T extends ContaBancaria> { T v[]; int topo; public PilhaConta() { v = (T[]) new ContaBancaria[100]; topo = 1; } Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 36/39

37 Restrições de tipo usando PilhaConta<ContaBancaria> p = new PilhaConta<ContaBancaria>(); p.push(new PoupancaOuro("Ze da Silva", 15)); p.push(new ContaEspecial("Ze da Silva", 15000)); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 37/39

38 Restrições usando Dado d1 = new Dado(), d2 = new Dado(); p.push(d1); p.push(d2); d1 = p.pop(); d2 = p.pop(); Todos esses comandos Vão produzir erros. O tipo dos dados Não é aceito. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 38/39

39 Restrições usando PilhaConta p3 = new PilhaConta(); p3.push(10); p3.push(d1); p3.push("genérico"); Todos esses comandos Vão produzir erros. Mesmo que p3 seja instanciado sem tipo definido O tipo dos dados Não é aceito. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 39/39

Interfaces POO. Prof. Marcio Delamaro

Interfaces POO. Prof. Marcio Delamaro Interfaces POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/41 O que é interface É um template de classe Outras classes podem seguir esse template Chamamos isso

Leia mais

Generics - Java. Fernando Santos. Programação Orientada a Objetos

Generics - Java. Fernando Santos. Programação Orientada a Objetos - Java Fernando Santos Programação Orientada a Objetos Generics é uma funcionalidade incorporada ao Java a partir da versão 5.0 Permite aos programadores escreverem métodos genéricos Os parâmetros dos

Leia mais

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Herança. Prof. Fernando V. Paulovich  23 de agosto de 2010 Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade

Leia mais

Coleções POO. Prof. Marcio Delamaro

Coleções POO. Prof. Marcio Delamaro Coleções POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/54 Definição Interface Collection E - the type of elements in this collection The root interface in

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

Tipos de dados e comandos POO

Tipos de dados e comandos POO Tipos de dados e comandos POO Prof. Marcio Delamaro 1/46 Objetivo Vamos ver quais são os tipo de dados primitivos da linguagem Vamos ver quais são os principais comandos 2/46 Tipos Tipo Tamanho int 4 bytes

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Programação Orientada a Objetos OUTROS MECANISMOS

Programação Orientada a Objetos OUTROS MECANISMOS Programação Orientada a Objetos OUTROS MECANISMOS Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Unidade V Unidade IV Outros Mecanismos: Classes parametrizadas. A biblioteca

Leia mais

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são: Apêndice A Classe Vector A classe Vector permite a representação de um vetor de dados de maneira similar à de um array, visto na disciplina Programação Orientada a Objetos I, mas com maior flexibilidade.

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 7: Interfaces LEEC@IST Java 1/31 Interfaces revisão (1) Uma interface é um conjunto de protótipos de métodos (sem implementações) que especifica um serviço bem definido:

Leia mais

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação

Leia mais

9 Classes Abstractas e Interfaces

9 Classes Abstractas e Interfaces 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

4 Conceito de Herança

4 Conceito de Herança 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CLASSES E OBJETOS PARA PROGRAMAÇÃO ORIENTADA A OBJETOS Classes são estruturas das linguagens de POO criadas para conter os dados que

Leia mais

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs Programação Orientada a Objetos Professor: André Luis Meneses Silva andreluis.ms@gmail.com br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS

ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS TEORIA CONJUNTO ORDENADO DE ITENS NO QUAL NOVOS ITENS PODEM SER INSERIDOS E A PARTIR DO QUAL PODEM SER ELIMINADOS ITENS EM UMA

Leia mais

Revisão: Tipo Abstrato de Dados Recursividade

Revisão: Tipo Abstrato de Dados Recursividade Algoritmos e Estrutura de Dados II Revisão: Tipo Abstrato de Dados Recursividade Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estudo das estruturas de dados envolve dois objetivos complementares:

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 5 Conversão de Tipos Polimorfismo O Modificador final O Modificador

Leia mais

Programação Orientada a Objetos Classes Abstratas. Sérgio Soares

Programação Orientada a Objetos Classes Abstratas. Sérgio Soares Programação Orientada a Objetos Classes Abstratas Sérgio Soares scbs@cin.ufpe.br Até aqui Quando usar herança? Ao redefinir um método manter o comportamento herdado! 2 Adivinhem... Surge um novo requisito

Leia mais

Genéricos. Profa. Thienne Johnson EACH/USP

Genéricos. Profa. Thienne Johnson EACH/USP Genéricos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 18 Material complementar http://wps.prenhall.com/br_deitel_comoprogra_6/ Todas as classes em Java herdam,

Leia mais

Orientação a Objetos AULA 09

Orientação a Objetos AULA 09 Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este

Leia mais

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla. Java First-Tier: plicações Orientação a Objetos em Java (III) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Herança: Simples Múltipla O tipo de herança que usamos até agora é chamado

Leia mais

Java Deployment Course

Java Deployment Course Java Deployment Course Atividade Prática Programação Visual com JBuilder Jorge H. C. Fernandes Recife, 12 de Maio de 1999 Tópicos Modelo da Aplicação Interface da Aplicação Conexão entre Modelo e Interface

Leia mais

Universidade Federal de Uberlândia

Universidade Federal de Uberlândia Universidade Federal de Uberlândia Faculdade de Computação Disciplina: POO1 Prof. Fabiano Dorça Classes e métodos abstratos É impossível instanciar objetos a partir de classes abstratas. Classes abstratas

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Editor Gráfico Vamos usar nosso framework do Motor, com pequenas mudanças (para permitir interação com

Leia mais

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra Introdução Programação Estruturada Também chamada de Programação Modular ou Procedimental Baseia-se no conceito

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Classes abstratas Até agora, usamos interfaces toda vez que queríamos representar algum conceito abstrato

Leia mais

C com introdução a OO

C com introdução a OO ... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro

Leia mais

Estruturas de Dados Pilhas, Filas, Listas

Estruturas de Dados Pilhas, Filas, Listas PMR2300 Escola Politécnica da Universidade de São Paulo Introdução Estruturas de dados são objetos que armazenam dados de forma eficiente, oferecendo certos serviços para o usuário (ordenação eficiente

Leia mais

Strings e Arrays POO

Strings e Arrays POO Strings e Arrays POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/27 String Uma sequência de caracteres que representa uma informação textual Em Java existe um

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Interfaces Uma interface é uma forma abstrata de descrever um objeto A classe fixa a forma de um objeto

Leia mais

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){

Leia mais

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Collections Framework

Collections Framework Collections Framework 1 Arrays p Manipular array é bastante trabalhoso. p Dificuldades aparecem em diversos momentos: n não podemos redimensionar um array em Java; n é impossível buscar diretamente por

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Classes parametrizadas (classes genéricas) Várias classes e interfaces da biblioteca padrão de Java têm

Leia mais

Programação Orientada a Objetos II JAVA Décima Aula. Prof. Rogério Albuquerque de Almeida

Programação Orientada a Objetos II JAVA Décima Aula. Prof. Rogério Albuquerque de Almeida Programação Orientada a Objetos II JAVA Décima Aula Prof. Rogério Albuquerque de Almeida 1 Programação Orientada a Objeto II Introdução à Estruturas de Dados Alocação Dinâmica Listas, pilhas e filas Construção

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Editor Gráfico Vamos usar nosso framework do Motor, com pequenas mudanças (para permitir interação com

Leia mais

A R R A Y S E E X C E P T I O N S P R O F. M E. H É L I O E S P E R I D I Ã O

A R R A Y S E E X C E P T I O N S P R O F. M E. H É L I O E S P E R I D I Ã O A R R A Y S E E X C E P T I O N S P R O F. M E. H É L I O E S P E R I D I Ã O Um array é um grupo de variáveis (chamados elementos ou componentes) que contém valores do mesmo tipo. Eles superam a limitação

Leia mais

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes - Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes

Leia mais

Linguagem de Programação I. Aula 10 Funções

Linguagem de Programação I. Aula 10 Funções Linguagem de Programação I Aula 10 Funções Da Aula Anterior Tipos de dados básicos e operadores em C Declaração de variáveis e modificadores de tipo Estruturas de Controle Arrays unidimensionais Geração

Leia mais

Herança (parte 2) Redefinição de métodos AULA 11

Herança (parte 2) Redefinição de métodos AULA 11 Introdução a Programação IF669 http://www.cin.ufpe.br/~if669 Herança (parte 2) Redefinição de métodos AULA 11 Ricardo Massa F. Lima rmfl@cin.ufpe.br Sérgio C. B. Soares scbs@cin.ufpe.br Na aula passada

Leia mais

Classes e Objetos POO

Classes e Objetos POO Classes e Objetos POO Prof. Marcio Delamaro 1/40 POO (wikipedia) Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which are data structures that contain data,

Leia mais

Paradigmas de Programação

Paradigmas de Programação Tipos Abstractos de Dados (ADT) Estruturas construídas para armazenar determinados tipos de dados e que especificam operações que permitem a manipulação desses dados. Estudaremos duas das mais simples

Leia mais

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona alcides.pamplona@gmail.com Tópicos Ligação Dinamica Polimorfismo Verificação Dinâmica de Tipos 2 Introdução A vinculação ou ligação

Leia mais

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. 6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável - O controlo da execução do programa

Leia mais

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno Programação Orientada a Objetos Aula 1.9 this e static Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de

Leia mais

Programação com genéricos

Programação com genéricos Programação com genéricos Laboratório de Programação Pedro Vasconcelos, DCC/FCUP Fevereiro 2015 Tipos genéricos tipos genéricos permitem definir classes ou interfaces que são parameterizadas por outras

Leia mais

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração Java First-Tier: Aplicações Orientação a Objetos em Java (II) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Sobrecarga Um recurso usual em programação OO é o uso de sobrecarga

Leia mais

Técnicas de Programação Avançada TCC Prof.: Anselmo Montenegro Conteúdo: Polimorfismo

Técnicas de Programação Avançada TCC Prof.: Anselmo Montenegro  Conteúdo: Polimorfismo Técnicas de Programação Avançada TCC- 00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br Conteúdo: Polimorfismo Revisão... A classe provê a estrutura para a construção de objetos

Leia mais

Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP

Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP Templates BCC 221 - Programação Orientada a Objectos(POO) Guillermo Cámara-Chávez Departamento de Computação - UFOP Introdução Os templates ou gabaritos fornecem a base para existência da programação genérica

Leia mais

Programação orientada a objetos em Java

Programação orientada a objetos em Java Programação orientada a objetos em Java Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons

Leia mais

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins Prova PMR0 o semestre 0 Prof Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço ( pontos) Uma árvore binária de busca é uma árvore binária na qual para qualquer sub-árvore

Leia mais

Tratamento de Exceções

Tratamento de Exceções Tratamento de Exceções Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução Exceções São eventos que

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

POO fundamentos Parte II. Professor Vicente Paulo de Camargo POO fundamentos Parte II Professor Vicente Paulo de Camargo COMPORTAMENTOS Um comportamento expressa uma ação que um objeto ou instância de uma classe pode executar Na POO um comportamento é expresso através

Leia mais

Herança e Polimorfismo

Herança e Polimorfismo Herança e Polimorfismo 2013 O que veremos hoje? Herança e polimorfismo Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Polimorfismo em POO Mais

Leia mais

Atributos e Métodos Estáticos

Atributos e Métodos Estáticos Atributos e Métodos Estáticos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Atributos Estáticos Atributos

Leia mais

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II JAVA Décima Segunda Aula

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II JAVA Décima Segunda Aula Prof. Rogério Albuquerque de Almeida Programação Orientada a Objetos II JAVA Décima Segunda Aula 1 Prof. Rogério Albuquerque de Almeida Programação Orientada a Objeto II Vetores Tratamento de Exceções

Leia mais

Relacionamentos entre objetos

Relacionamentos entre objetos Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores t e sobrecarga Variáveis de classe e de instância Reinaldo Gomes reinaldo@cefet-al.br Objetos

Leia mais

Linguagem Algorítmica OO. Linguagem Algorítmica

Linguagem Algorítmica OO. Linguagem Algorítmica UFSC-CTC-INE INE5384 - Estruturas de Dados Linguagem Algorítmica OO Prof. Ronaldo S. Mello 2002/2 Linguagem Algorítmica Independente de linguagem de programação OO Utilizada para: Exemplificar os algoritmos

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Ambiente de Programação JAVA POO

Ambiente de Programação JAVA POO Ambiente de Programação JAVA POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/28 Java e POO Antes de entrarmos propriamente em POO vamos ver algumas ferramentas

Leia mais

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Professora Sheila Cáceres Sobrecarga (overloading) Na mesma classe podemos definir vários métodos com o mesmo nome Sobrecarga O tipo

Leia mais

Prof. A. G. Silva. 25 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de / 35

Prof. A. G. Silva. 25 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de / 35 INE5603 Introdução à POO Prof. A. G. Silva 25 de setembro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de 2017 1 / 35 Baseado em materiais da Recursividade Unisinos, Cesar Tacla (UTFPR),

Leia mais

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Professora Sheila Cáceres Polimorfismo Polimorfismo Polimorfismo é a característica única de linguagens orientadas

Leia mais

Criando Classes em PHP

Criando Classes em PHP Aula 05 Programação Orientação a objetos Criando Classes em PHP Orientação a objetos nada mais é que um paradigma de programação. Esse paradigma não é novo, desde a década de 60 já existiam linguagem que

Leia mais

Prof. Jesus José de Oliveira Neto

Prof. Jesus José de Oliveira Neto Prof. Jesus José de Oliveira Neto É uma das estruturas de dados mais simples A idéia fundamental da pilha é que todo o acesso a seus elementos é feito através do seu topo. Assim, quando um elemento novo

Leia mais

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos e Ligação Dinâmica Programação Orientada a Objetos e Polimorfismo A é a contribuição original do paradigma de programação orientado a objetos Fundamentos chave do paradigma OO: Abstração de Dados A herança

Leia mais

Prof. Fernando V. Paulovich 8 de novembro de SCC Programação Orientada a Objetos

Prof. Fernando V. Paulovich  8 de novembro de SCC Programação Orientada a Objetos Coleções a Tipos Genéricos em Java SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação

Leia mais

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO REVISÃO POO INTRODUÇÃO À LINGUAGEM JAVA CRIANDO CLASSES EM JAVA Convenção de Nomes em Java Classes iniciam com letras maiúsculas Métodos, atributos e variáveis locais iniciam com minúsculas. Declaração

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Variáveis e Métodos de Classe Em Java, quer as classes quer as instâncias das classes são objectos. Onde está o estado da classe? Com que operações é manipulado? UBI, Departamento de Informática T04-1

Leia mais

Professor Leonardo Cabral da Rocha Soares Lattes:

Professor Leonardo Cabral da Rocha Soares Lattes: Professor Leonardo Cabral da Rocha Soares Lattes: http://lattes.cnpq.br/3184602538494393 A Herança, em programação orientada a objetos (POO), é a possibilidade de escrever novas classes partindo de classes

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa é transferido

Leia mais

Interfaces e Classes Internas

Interfaces e Classes Internas e Classes Internas SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... } Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação

Leia mais

Classes e Encapsulamento

Classes e Encapsulamento Classes e Encapsulamento Marcio Santi POO e C++ Tipo Abstrato de Dados (TAD) TAD atributos dados que o representam interface operações associadas como é manipulado 1 Exemplo: Editor Gráfico (classe círculo)

Leia mais

Paradigmas de Programação. Genéricos

Paradigmas de Programação. Genéricos Genéricos Extensão à linguagem Java apresentada pelo JDK1.5 Permite reutilização de software com tipo seguro Permite abstrair do tipo de dados Exemplo: Desenvolver código para uma classe (por ex, uma pilha)

Leia mais

Programação Java. Tratamento de Exceções

Programação Java. Tratamento de Exceções Programação Java Tratamento de Exceções Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Motivações para Exceções Um método pode detectar uma falha mas não estar apto a resolver sua

Leia mais

Pedro Vasconcelos DCC/FCUP. Programação Funcional 17 a Aula Tipos abstratos

Pedro Vasconcelos DCC/FCUP. Programação Funcional 17 a Aula Tipos abstratos Programação Funcional 17 a Aula Tipos abstratos Pedro Vasconcelos DCC/FCUP 2014 Tipos concretos Até agora definimos um novo tipo de dados começando por listar os seus construtores. data Bool = False True

Leia mais

TRATAMENTO DE EXCEÇÕES

TRATAMENTO DE EXCEÇÕES Uma exceção em Java é um sinal que alguma condição excepcional aconteceu; Algo de errado aconteceu! Exemplos: solicitação de abertura de um arquivo não encontrado; índice de um array fora de faixa; uma

Leia mais

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno. Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Possibilita o reuso de classes (código-fonte) Usar quando:

Leia mais

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo

Leia mais

AULA TEÓRICA 7 Tema 7. Colecções (cont.) Vector Ø Criação Ø Manipulação

AULA TEÓRICA 7 Tema 7. Colecções (cont.) Vector Ø Criação Ø Manipulação AULA TEÓRICA 7 Tema 7. Colecções (cont.) Vector Ø Criação Ø Manipulação 1 Vector Os vectores são semelhantes aos arrays, pois também podem conter um conjunto de objectos aos quais é atribuído um índice.

Leia mais

Programação Funcional 13 a Aula Tipos abstratos

Programação Funcional 13 a Aula Tipos abstratos Programação Funcional 13 a Aula Tipos abstratos Sandra Alves DCC/FCUP 2018/19 Tipos concretos Até agora definimos um novo tipo de dados começando por listar os seus construtores. data Bool = False True

Leia mais

Conceitos Básicos da Programação OO

Conceitos Básicos da Programação OO Conceitos Básicos da Programação OO Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Objetivos Aprender os

Leia mais

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;

Leia mais

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho Programação Orientada a Objetos Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Programação Orientada a Objetos Na aula passada, vimos: Herança Programação Orientada

Leia mais

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores Prof.: Bruno E. G. Gomes IFRN 1 Introdução Na aula de hoje: Declaração de classes Métodos Construtores Exercícios de criação

Leia mais

Introdução à Orientação a Objetos em Java

Introdução à Orientação a Objetos em Java Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB Centro de Informática, UFPE Programação estruturada

Leia mais

Sobrecarga, Sobreposição e Polimorfismo

Sobrecarga, Sobreposição e Polimorfismo Sobrecarga, Sobreposição e Polimorfismo José Gustavo de Souza Paiva Sobrecarga de Métodos Numa mesma classe, dois ou mais métodos podem ter o mesmo nome Desde que tenham tipos, quantidade e/ou ordem de

Leia mais

OO - Orientação a Objetos

OO - Orientação a Objetos OO - Orientação a Objetos 1 Motivação p Orientação a objetos é uma maneira de programar que ajuda na organização e resolve muitos problemas enfrentados pela programação procedural; p Imaginem em um grande

Leia mais

Programação Estruturada Prof. Rodrigo Hausen Agregados de Dados Heterogêneos (structs)

Programação Estruturada Prof. Rodrigo Hausen   Agregados de Dados Heterogêneos (structs) Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Agregados de Dados Heterogêneos (structs) 1 AGREGADO HOMOGÊNEO Um agregado homogêneo de dados é um conjunto de dados que são necessariamente

Leia mais

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática 6 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... Diz-se que o nome de um método foi sobrecarregado ( overloaded

Leia mais

JAVA. Professor: Bruno Toledo

JAVA. Professor: Bruno Toledo JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código

Leia mais