Programação com genéricos

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

Download "Programação com genéricos"

Transcrição

1 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 classes foram acrescentados à linguagem Java na versão 5 baseados no polimorfismo paramétrico de linguagens como Standard ML ou Haskell permitem que as coleções sejam polimórficas (e.g. utilizar listas, filas, etc. com vários tipos) permitem detetar mais erros de tipos em compilação Exemplo: listas Queremos implementar listas ligadas de inteiros ou de strings. Em Java 1.0 há duas alternativas: 1. duas classes separadas LinkedIntList e LinkedStringList 2. uma só classe LinkedList cujos elementos são Object A opção 1 causa duplicação de código. A opção 2 obriga a coerções de tipos e potencial perda de segurança de tipos em tempo de compilação Em Java 5: os tipos genéricos resolvem ambos problemas. 1

2 LinkedList sem genéricos LinkedList list = new LinkedList(); // criar uma lista vazia list.add("hello"); // adicionar um elemento String s = list.get(0); // erro de tipos em compilação // método get retorna Object String s = (String) list.get(0); // resolvemos o erro: coerção explicita Integer n = (Integer) list.get(0); // erro de tipos na execução LinkedList com genéricos LinkedList<String> list = new LinkedList<String>(); // criar uma lista vazia list.add("hello"); // adicionar um elemento String s = list.get(0); // não é necessária coerção Integer n = list.get(0); // erro de tipos na compilação Inferência de tipos Podemos omitir o parâmetro de tipo dum construtor e escrever apenas <> ( diamond ) se o tipo puder ser inferido do contexto. LinkedList<String> = new LinkedList<>(); // parâmetro <String> inferido NB: se omitirmos o operador <> criamos uma coleção pré-genéricos (i.e. de Object): 2

3 LinkedList<String> = new LinkedList(); // warning: unchecked conversion Instanciação de parâmetros O parâmetro de tipo pode ser substituido (instanciado) por qualquer classe (inclusivé outra instância de um tipo genérico). LinkedList<Integer> list1; // lista de inteiros LinkedList<String> list2; // lista de strings LinkedList<LinkedList<Integer>> list3; // lista de listas de inteiros Instanciação de parâmetros (2) Este mecanismo corresponde exatamente ao polimorfismo paramétrico em Haskell. Os tipos correspondentes são: list1 :: [Int] -- lista de inteiros list2 :: [String] -- lista de strings list3 :: [[Int]] -- lista de listas de inteiros Classes wrapper Porquê LinkedList<Integer> em vez de LinkedList<int>?... Resposta: porque apenas podemos colocar objetos dentro duma coleção e os valores primitivos não são objetos! 3

4 Classes wrapper (cont.) Integer é uma classe wrapper que apenas embrulha um inteiro como um objeto necessária para colocar inteiros dentro de coleções genéricas existem wrappers para todos os outros tipos primitivos (Float, Double, etc.) Integer a = new Integer(42); // int para Integer ("boxing") Integer b = Integer.valueOf(42); // alternativa (forma preferida) int c = a.intvalue() + b.intvalue(); // Integer para int ("unboxing") Coleções genéricas As bibliotecas de Java incluêm classes para estruturas de dados que implementam coleções genéricas. Alguns exemplos (de java.util.*): LinkedList<E> listas duplamente ligadas ArrayList<E> listas implementada como arrays de tamanho redimensionado automaticamente Stack<E> pilhas LIFO ( last-in, first-out ) O parâmetro de tipo E representa o tipo dos elementos na coleção. Interfaces a coleções Além das classes que implementam estruturas concretas, temos também interfaces genéricas que abstraiem os detalhes de implementação. Exemplos: List<E> interface genérico para listas (e.g. ArrayList ou LinkedList) Deque<E> interface genérico para filas com acesso no início e fim Set<E> interface genérico para conjuntos (e.g. TreeSet ou HashSet) 4

5 Interfaces genéricos Os genéricos também são usado em interfaces para operações comuns. Dois exemplos: Comparable<T> efetuar comparações numa ordem total (i.e. <, = ou >) Iterator<T> efetuar iteração sobre uma sequência de objetos Interface Comparable public interface Comparable<T> { int compareto(t o); } define um método compareto() a.compareto(b) compara o objeto a com b o resultado é um inteiro que indica a ordem relativa: < 0 a é menor do que b 0 a é igual a b > 0 a é maior do que b Exemplo uma classe para representar pessoas com atributos nome e idade implementar ordem comparando primeiro as idades e (se forem iguais) os nomes (i.e. uma ordem lexicográfica) Exemplo (cont.) class Pessoa implements Comparable<Pessoa> { private String nome; private int idade;... // construtor omitido public int compareto(pessoa outro) { // comparar primeiro idades int cmp = this.idade - outro.idade; 5

6 } } if (cmp == 0) { // idades iguais: comparar nomes cmp = this.nome.compareto(outro.nome); } return cmp; Exemplo (cont.) Exercício: redefinir o método equals de forma consistente com compareto. Para quaisquer duas pessoas a, b tais que a.compareto(b) == 0 então a.equals(b) == true 6

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

5. Generics, Iterators e Comparable em Java

5. Generics, Iterators e Comparable em Java 5. Generics, Iterators e Comparable em Java Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 5. Generics, Iterators e Comparable em Java Estruturas de Dados 1 / 12 Tipos de Dados Abstractos

Leia mais

Coleções. Prof. Marcelo Roberto Zorzan

Coleções. Prof. Marcelo Roberto Zorzan Coleções Prof. Marcelo Roberto Zorzan Coleções Aula de Hoje Introdução Coleções podem representar estruturas de dados complexas de forma transparente para o programador. Exemplos: Músicas favoritas armazenadas

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 Subtipagem e Coringas Lista é subtipo de Lista para qualquer T Não podemos chamar métodos em Lista

Leia mais

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

Profa. Thienne Johnson EACH/USP

Profa. Thienne Johnson EACH/USP Profa. Thienne Johnson EACH/USP Declarando classes usando generics Métodos que usam um parâmetro de tipo como tipo de retorno Declaração da classe BasicGeneric: class BasicGeneric Contém o parâmetro

Leia mais

Métodos Genéricos. Prof.: Michele Nasu Tomiyama Bucci

Métodos Genéricos. Prof.: Michele Nasu Tomiyama Bucci Métodos Genéricos Prof.: Michele Nasu Tomiyama Bucci Introdução Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados

Leia mais

A classe ArrayList. IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

A classe ArrayList. IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli A classe ArrayList Java oferece uma classe chamada ArrayList, que permite a criação e manipulação de objetos; Um objeto ArrayList é semelhante a um vetor de objetos, mas oferece inúmeras vantagens em relação

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

Programação Orientada a Objetos com Java. Prof. Júlio Machado

Programação Orientada a Objetos com Java. Prof. Júlio Machado Programação Orientada a Objetos com Java Prof. Júlio Machado julio.machado@pucrs.br HERANÇA Herança Herança é uma relação de generalização/especialização entre classes A ideia central de herança é que

Leia mais

Atividade 08 - Utilizando Collections - List

Atividade 08 - Utilizando Collections - List Atividade 08 - Utilizando Collections - List A Figura 1 mostra a árvore da hierarquia de interfaces e classes da Java Collections Framework que são derivadas da interface Collection. O diagrama usa a notação

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

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

Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções

Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções Implementação de Genéricos, Iteradores Isabel Harb Manssour Porto Alegre, maio de 2006 Roteiro Implementação de Genéricos Coleções Conceito de Genérico Implementação Iteradores Conceito Utilização ForEach

Leia mais

Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes

Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes Programação Funcional 2 a Aula Tipos e classes Pedro Vasconcelos DCC/FCUP 2012 Tipos Um tipo é um nome para uma coleção de valores relacionados. Por exemplo, o tipo Bool True contém dois valores lógicos:

Leia mais

Instituto Federal de Educação, Ciência e Tecnologia da Bahia Campus Irecê Disciplina: Linguagem Técnica II Prof o Jonatas Bastos

Instituto Federal de Educação, Ciência e Tecnologia da Bahia Campus Irecê Disciplina: Linguagem Técnica II Prof o Jonatas Bastos Instituto Federal de Educação, Ciência e Tecnologia da Bahia Campus Irecê Disciplina: Linguagem Técnica II Prof o Jonatas Bastos Nome: LISTA DE EXERCÍCIO 1 Collections Framework 1. Criem um projeto que

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

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse

Leia mais

Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes

Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes Programação Funcional 2 a Aula Tipos e classes Pedro Vasconcelos DCC/FCUP 2014 Tipos Um tipo é um nome para uma coleção de valores relacionados. Por exemplo, o tipo Bool True contém dois valores lógicos:

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

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

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

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

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 Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Java Collections Framework (JCF) Uma coleção (collection) é um objeto que agrupa vários elementos. A JCF consiste numa arquitetura para representação e manipulação de coleções. Contém: - Um conjunto de

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-7 Reutilização de Classes Prof. Esbel Tomás Valero Orellana Até Aqui Introdução a POO e sua implementação em Java Atributos, métodos e encapsulamento dos mesmos Trabalhando

Leia mais

4. Listas, Pilhas, e Filas

4. Listas, Pilhas, e Filas 4. Listas, Pilhas, e Filas Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 4. Listas, Pilhas, e Filas Estruturas de Dados 1 / 49 Definição de Lista (1) Uma lista é uma sequência finita

Leia mais

4. Listas, Pilhas, e Filas

4. Listas, Pilhas, e Filas 4. Listas, Pilhas, e Filas Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 4. Listas, Pilhas, e Filas Estruturas de Dados 1 / 49 Definição de Lista (1) Uma lista é uma sequência finita

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Polimorfismo Mais exemplos

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Prof. Kléber de Oliveira Andrade pdjkleber@gmail.com Coleções, Propriedades, Resources e Strings (Parte 2) Coleções É comum usarmos um objeto que armazena vários outros

Leia mais

Programação Funcional 14 a Aula Classes de tipos revisitadas

Programação Funcional 14 a Aula Classes de tipos revisitadas Programação Funcional 14 a Aula Classes de tipos revisitadas Sandra Alves DCC/FCUP 2017/18 Classes de tipos As classes de tipos agrupam tipos de valores que suportam operações comuns. Eq igualdade (==,

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

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Template Templates Funções templates Especificam

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

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

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

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

Programação Orientada a Objetos. Collections - Java

Programação Orientada a Objetos. Collections - Java 1 Programação Orientada a Objetos Collections - Java Coleções Conceito Geral Uma coleção é uma estrutura de dados que permite armazenar vários objetos. Em Java, a coleção também é um objeto. As operações

Leia mais

Coleções. João Paulo Q. dos Santos

Coleções. João Paulo Q. dos Santos Coleções João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre coleções; Tipos de coleções; Como são classificadas; Exemplos. 04/02/14 2 Coleções Classes e interfaces do pacote java.util

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 Breakout Componentes do Breakout Bola Raquete Tijolos Paredes Score Nem todos vão precisar de classes próprias

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

EXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false

EXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 4 EXPRESSÕES BOOLEANAS O tipo primitivo boolean É um tipo de dados primitivo em Java que possui

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

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 Revisão Classes e Objetos Classes são uma das unidades básicas de um programa Java Usamos as classes para

Leia mais

Java para Desktop. Programação Orientada à Objetos 2 JSE

Java para Desktop. Programação Orientada à Objetos 2 JSE Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona

Leia mais

Desenvolvimento e Projeto de Aplicações Web

Desenvolvimento e Projeto de Aplicações Web Desenvolvimento e Projeto de Aplicações Web cecafac@gmail.com Coleções Conteúdo 1 Introdução Desde a versão 1.2 do JDK, a plataforma J2SE inclui um framework de coleções (Collections) Uma coleção é um

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

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

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

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 31 de outubro de 2017 Marco Antonio

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

Java Standard Edition (JSE)

Java Standard Edition (JSE) Java Standard Edition (JSE) 13. Collections framework Esp. Márcio Palheta Gtalk: marcio.palheta@gmail.com 1 Agenda Revisão de dificuldades com Arrays; Trabalhando com Listas - List; Uso de Generics; Interfaces

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

Estruturas de Dados Encadeadas

Estruturas de Dados Encadeadas CURSO: Ciência da Computação DATA: / / 2016 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 14 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos

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

Genéricos by Pearson Education do Brasil

Genéricos by Pearson Education do Brasil 1 18 Genéricos 2 OBJETIVOS Neste capítulo, você aprenderá: Como criar métodos genéricos que realizam tarefas idênticas em argumentos de diferentes tipos. Como criar uma classe Stack genérica que pode ser

Leia mais

Nome: Número: Primeira Parte (7 valores) Segunda Parte (3 valores)

Nome: Número: Primeira Parte (7 valores) Segunda Parte (3 valores) Nome: Número: Programação com Objectos 10 de Novembro de 2015, 08:00 (90 minutos) Primeira Parte (7 valores) Segunda Parte (3 valores) PERGUNTA NOTA PERGUNTA RESPOSTA 1.1 2.1 1.2 2.2 1.3 1.4 2.3 2.4 2.5

Leia mais

Linguagem de Programação Orientada a Objeto Coleções

Linguagem de Programação Orientada a Objeto Coleções Linguagem de Programação Orientada a Objeto Coleções Professora Sheila Cáceres Coleções Uma coleção é uma estrutura de dados que permite armazenar vários objetos As operações que podem ser feitas em coleções

Leia mais

12 Tipos Genéricos. Desenvolvimento OO com Java. Vítor E. Silva Souza

12 Tipos Genéricos. Desenvolvimento OO com Java. Vítor E. Silva Souza Desenvolvimento OO com Java 12 Tipos Genéricos Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do

Leia mais

API e Coleções Java. Sérgio Luiz Ruivace Cerqueira

API e Coleções Java. Sérgio Luiz Ruivace Cerqueira API e Coleções Java Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java API Introdução API Endereço http://download.oracle.com/javase/6/docs/api/ API - Descrição API - Resumo API - Detalhes Coleções

Leia mais

Estrutura de Dados Funções e Procedimentos

Estrutura de Dados Funções e Procedimentos Estrutura de Dados Funções e Procedimentos Prof. Salustiano Rodrigues de Oliveira saluorodrigues@gmail.com www.profsalu.wordpress.com Java A linguagem Java utiliza o paradigma de programação orientada

Leia mais

Exame Especial de Linguagens de Programação - DCC024 -

Exame Especial de Linguagens de Programação - DCC024 - Exame Especial de Linguagens de Programação - DCC024 - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem consulta.

Leia mais

Introdução. Universidade Federal de Uberlândia. Programação Orientada a Objetos. Prof. Fabiano Dorça

Introdução. Universidade Federal de Uberlândia. Programação Orientada a Objetos. Prof. Fabiano Dorça Introdução Universidade Federal de Uberlândia Programação Orientada a Objetos Prof. Fabiano Dorça Introdução Definições iniciais: classe, objeto, métodos, atributos. Introdução Ao escrever um programa

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

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Collections Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 08 Arranjos, Listas, Filas, Pilhas, Conjuntos e Mapas 1 Introdução Java fornece implementação de Estruturas de Dados recorrentemente utilizadas.

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 Interfaces Uma interface é uma forma abstrata de descrever um objeto A classe fixa a forma de um objeto

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

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

Algoritmos e Programação II. Coleções. Coleções. Baseado no material do Prof. Julio

Algoritmos e Programação II. Coleções. Coleções. Baseado no material do Prof. Julio Algoritmos e Programação II Baseado no material do Prof. Julio Coleções Java disponibiliza classes que facilitam o agrupamento e processamento de objetos em conjuntos: Coleções (Java Collections Framework).

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

Orientação a Objetos e Java

Orientação a Objetos e Java Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características

Leia mais

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20 PPROG Paradigmas da Programação Tipos Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20 Sumário Interesse Definição Implementação Declaração Valor de um Tipo Enumerado Variável de Tipo Enumerado Métodos Automáticos

Leia mais

Conceitos de Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos Conceitos de Programação Orientada a Objetos Tatyana Bitencourt Com as técnicas de orientação a objeto, é possível obter resultados considerados impossíveis pensando de maneira estruturada. Como Java não

Leia mais

Lista de Linguagens de Programação 16

Lista de Linguagens de Programação 16 Lista de Linguagens de Programação 16 Nome: Matrícula: Os exercícios desta lista devem ser todos implementados em Python. 1. Este exercício faz referência às classes implementadas em Python disponíveis

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

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

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno. Interfaces Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Interfaces É utilizada para agrupar conceitos em

Leia mais

Generics POO. Prof. Marcio Delamaro

Generics POO. Prof. Marcio Delamaro Generics POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/39 O que são Tipos genéricos São uma forma de definir e utilizar classes de forma genérica Dá flexibilidade

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

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos Programação com Objectos Processamento de Dados I 2. Classes, Atributos e Métodos 1 Classes, Atributos e Métodos Modificadores de acesso (visibilidade) Sobrecarga de métodos (method overloading) Variáveis

Leia mais

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu: Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz - 2015/05/13 Questão: 1 2 3 4 5 6 Total Pontos: 20 15 15 10 10 30 100 Gráu: 1. Defina os termos listados a seguir: (a) (10 Pontos)

Leia mais

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento Orientação a objetos Programação Orientada a Objetos Alexandre César Muniz de Oliveira Linguagens orientadas a procedimentos e linguagens orientadas a objetos Unidade de programação: funções e classes

Leia mais

Notas de Aula 07: vetores de objetos e coleções

Notas de Aula 07: vetores de objetos e coleções Notas de Aula 07: vetores de objetos e coleções Objetivos da aula: Entender a sintaxe de vetores em Java Compreender o uso do vetor como um objeto Uso das coleções em Java Recordando... Na aula passada

Leia mais

Interfaces e Classes Abstratas

Interfaces e Classes Abstratas Interfaces e Classes Abstratas José Gustavo de Souza Paiva Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos abstratos

Leia mais

Programação Orientada a Objetos. Polimorfismo

Programação Orientada a Objetos. Polimorfismo Programação Orientada a Objetos Polimorfismo Cristiano Lehrer, M.Sc. Introdução (1/3) Polimorfismo significa ter muitas formas. Em termos de programação, muitas formas significa que um único nome pode

Leia mais

Programação Orientada a Objetos Relacionamentos entre classes

Programação Orientada a Objetos Relacionamentos entre classes Programação Orientada a Objetos Relacionamentos entre classes Prof. Vicente Paulo de Camargo RELACIONAMENTO ENTRE CLASSES Interface agregação Dependencia composição generalização associação RELACIONAMENTO

Leia mais

5. Generics, Iterators e Comparable em Java. Tipos de Dados Abstractos Generics em Java

5. Generics, Iterators e Comparable em Java. Tipos de Dados Abstractos Generics em Java 5. Generics, Iterators e Comparable em Java Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 5. Generics, Iterators e Comparable em Java Estruturas de Dados 1 / 12 Tipos de Dados Abstractos

Leia mais

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

6. Pesquisa e Ordenação

6. Pesquisa e Ordenação 6. Pesquisa e Ordenação Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 6. Pesquisa e Ordenação Estruturas de Dados 1 / 30 Pesquisa de Informação A pesquisa eficiente de informação

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

C O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O

C O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O C O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O NOME DE CLASSES Toda classe deve começar com uma letra maiúscula. Não pode conter letras não ASCII (caracteres

Leia mais

Programação II Java Collections Framework (JCF) Christopher Burrows

Programação II Java Collections Framework (JCF) Christopher Burrows Programação II Java Collections Framework (JCF) Christopher Burrows Arrays Um Array é um contentor que armazena um número fixo de valores de um tipo. Exemplo: int arrayint[] = new int[9];

Leia mais

Collections. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Collections. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Collections Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Coleções em Java As coleções agrupam vários

Leia mais