Não é necessário implementar métodos de ordenação, busca, redimensionamento e etc.

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

Download "Não é necessário implementar métodos de ordenação, busca, redimensionamento e etc."

Transcrição

1 Coleções Podemos definir coleção como a representação de um grupo de objetos, semelhante aos arrays. No entanto, as coleções são implementações que geralmente encapsulam arrays, oferecendo algumas facilidades como: busca; inserção; redimensionamento dinâmico; remoção de elementos; ordenação Exemplos da utilização de coleções Quando fazemos consultas em banco de dados e queremos armazenar os objetos que representam o resultado da consulta em um único objeto. Exemplo: A consulta de clientes por categoria pode retornar uma coleção de objetos cliente. Mapeamento de relações 1 para muitos, ou seja, um cliente tem muitos endereços. Podemos dizer que um objeto do tipo Cliente tem uma coleção de objetos do tipo Endereco. Vantagens na utilização de coleções Não é necessário implementar métodos de ordenação, busca, redimensionamento e etc. Normalmente, há a melhora na performance, pois provê implementações otimizadas criadas por especialistas. Interface em Java O que é uma interface? A interface é uma forma de especificação de comportamento de classes, onde definimos todos os métodos que devem ser implementados pela classe, garantindo que as classes que implementem a interface terão, obrigatoriamente, todos os métodos definidos na interface; Interfaces definem a forma como iremos interagir com as classes que a implementam; 1

2 Interface é um protótipo de classe; A Interface Collection (java.util.collection) A interface Collection é a especificação que representa um grupo de objetos chamados de elementos. Existem diferentes implementações e sub-interfaces da interface Collection que oferecem vantagens e desvantagens, dependendo da situação, podemos encontrar coleções com as seguintes características: Algumas permitem elementos duplicados e outras não Algumas são ordenadas e outras não Algumas permitem a inserção do elemento null e outras não Esta interface é utilizada apenas como "objeto para polimorfismo" para que um método possa receber uma Collection genérica, ou seja, qualquer classe que a implemente ou uma de suas sub-interfaces. <<Interface>> Collection <<Interface>> Set <<Interface>> List Importância da Sobrescrita do hashcode e equals equals() O que acontece quando comparamos dois objetos da mesma classe utilizando o operador ==? Inicialmente, poderíamos acreditar que os atributos que compõe cada um dos objetos seriam comparados, retornando true se todos forem idênticos. Porém, a JVM verifica se a referência dos objetos é a mesma, ou seja, se os endereços de memória são iguais. 2

3 De acordo com a documentação do JavaDoc da classe Object, que define o método equals(), devemos sempre sobrescreve-lo levando em consideração as seguintes relações: Reflexão: x.equals(x) deve ser true para qualquer x diferente de null; Simetria: Para x e y diferentes de null, se x.equals(y) é true, então y.equals(x) também deve ser; Transitividade: Para x, y e z diferentes de null, se x.equals(y) é true, e y.equals(z) é true, então x.equals(z) também deve ser true; Consistência: Para x e y diferentes de null, múltiplas chamadas de x.equals(y) devem sempre retornar o mesmo valor; Para x diferente de null, x.equals(null) deve sempre retornar false Vamos analisar alguns exemplo para entender o uso do método equals(). Pessoa.java public class Pessoa{ private String nome; private String RG; public Pessoa(String nome, String RG){ this.setnome(nome); this.setrg(rg); public void setnome(string nome){ this.nome = nome; public void setrg(string RG){ this.rg = RG; public String getnome(){ return nome; public String getrg(){ return RG; 3

4 TestePessoa.java public class TestePessoa{ public static void main (String args[]){ Pessoa p1 = new Pessoa("Jessica", "752"); Pessoa p2 = new Pessoa("Jessica", "752"); if (p1 == p2){ System.out.println("p1 igual p2 com =="); else{ System.out.println("p1!= p2 com =="); Veja abaixo a saída gerada pela execução da classe TestePessoa.java. p1!= p2 com == Os objetos foram considerados diferentes pelo operador ==, embora contenham atributos idênticos, pois a referência aos objetos na memória heap é diferente. Vamos analisar um novo exemplo, porém desta vez utilizando o método equals() herdado da classe Object. TestePessoa.java public class TestePessoa{ public static void main (String args[]){ Pessoa p1 = new Pessoa("Jessica", "752"); Pessoa p2 = new Pessoa("Jessica", "752"); if (p1.equals(p2)){ System.out.println("p1 igual p2 com equals da classe Object"); else{ System.out.println("p1!= p2 com equals da classe Object"); Veja abaixo a saída gerada pela execução da classe TestePessoa.java, agora com a utilização do método equals da classe Object. p1!= p2 com equals da classe Object A comparação utilizando o método equals apresentou o mesmo resultado daquele que utilizou o operador ==. Isto 4

5 aconteceu porque o método equals, herdado da classe Object, emprega o operador == para comparar objetos. Se o objetivo é informar que os objetos da classe Pessoa são iguais caso o conteúdo de todos os seus atributos forem iguais, devemos então sobrescrever o método equals na classe Pessoa. Veja abaixo as alterações nas classes Pessoa.java e TestePessoa.java. Pessoa.java public class Pessoa{ private String nome; private String RG; public Pessoa(String nome, String RG){ this.setnome(nome); this.setrg(rg); public void setnome(string nome){ this.nome = nome; public void setrg(string RG){ this.rg = RG; public String getnome(){ return nome; public String getrg(){ return RG; //Sobrescrita do método equals da classe Object public boolean equals(object o){ //Devemos verificar se o objeto "o" eh uma //instancia da classe Pessoa if (o instanceof Pessoa){ //Devemos fazer o cast de Object para Pessoa Pessoa p = (Pessoa) o; if (this.getnome().equals(p.getnome()) && this.getrg().equals(p.getrg())){ return true; else{ return false; else{ return false; 5

6 TestePessoa.java public class TestePessoa{ public static void main (String args[]){ Pessoa p1 = new Pessoa("Jessica", "752"); Pessoa p2 = new Pessoa("Jessica", "752"); if (p1.equals(p2)){ System.out.println("p1 igual p2 com equals da classe Pessoa"); else{ System.out.println("p1!= p2 com equals da classe Pessoa"); Veja abaixo a saída gerada pela execução da classe TestePessoa.java, agora com a utilização do método equals da classe Pessoa. p1 igual p2 com equals da classe Pessoa hashcode() Segundo o JavaDoc da classe Object, o método hashcode() retorna números inteiros distintos para objetos distintos. Este número é gerado pela conversão do endereço interno do objeto em um número inteiro. As implementações de equals e hashcode devem ser coerentes, ou seja, sempre que dois objetos forem considerados iguais pelo método equals, os dois objetos também devem possuir o mesmo hashcode. Embora não seja exigido pela especificação que dois objetos diferentes tenham hashcodes diferentes, é coerente implementar os métodos de forma que objetos diferentes tenham hashcodes diferentes. A implementação de hashcode, pode ser baseada na implementação de hashcode dos atributos da classe. Vamos criar uma classe Funcionário com dois atributos: nome e fone. Ambos do tipo String; O método equals da classe Funcionário irá retornar true se e somente se o nome e o fone dos Funcionários forem iguais; O hashcode do Funcionário será calculado somando o hashcode do nome e do fone do Funcionário. 6

7 Veja o exemplo abaixo que sobrescreve os métodos equals() e hashcode() da classe Object na classe Funcionário. Funcionario.java public class Funcionario{ String nome; String fone; public boolean equals(object o){ //Devemos verificar se o objeto "o" eh uma //instancia da classe Funcionario if (o instanceof Funcionario){ //Devemos fazer o cast de Object para Funcionario Funcionario f = (Funcionario) o; if (this.nome.equals(f.nome) && this.fone.equals(f.fone)){ return true; else return false; else return false; public int hashcode(){ return this.fone.hashcode() + this.nome.hashcode(); public static void main (String args[]){ Funcionario f1 = new Funcionario(); Funcionario f2 = new Funcionario(); f1.nome = "Joao"; f1.fone = "564"; f2.nome = "Joao"; f2.fone = "564"; if (f1.equals(f2)){ System.out.println("f1 igual f2"); System.out.println("hashCode f1: " + f1.hashcode()); System.out.println("hashCode f2: " + f2.hashcode()); else{ System.out.println("f1 diferente f2"); System.out.println("hashCode f1: " + f1.hashcode()); System.out.println("hashCode f2: " + f2.hashcode()); 7

8 Conjuntos (Set), Listas (List) e Mapeamento (Map) A Interface List (java.util.list) A interface List define uma coleção ordenada, também conhecida como seqüência. Por isto, quando utilizamos objetos que implementem esta interface, obtemos o controle sobre a posição em que os elementos são inseridos, sendo possível acessá-los através de um índice inteiro (posição na lista). Exemplo: Índice 0 obj1 1 obj2 2 obj n Objn List Normalmente as classes que implementam esta interface permitem elementos duplicados e elementos null. Hierarquia <<Interface>> Collection <<Interface>> List ArrayList 8

9 A Interface Set (java.util.set) Esta Collection é a representação de conjuntos matemáticos, e caracteriza-se por não possuir elementos repetidos no seu interior. De que maneira é feita a análise de elementos idênticos? Tecnicamente, a Set verifica um a um os objetos existentes em seu interior com o elemento a ser incluído. Esta verificação é feita invocando o método equals de cada um dos objetos, passando como parâmetro o objeto a ser inserido. Se a análise retornar true o objeto não será incluído ao Set. <<Interface>> Collection <<Interface>> Set HashSet A Interface Map (java.util.map) Esta interface define objetos que mapeiam chaves e valores, onde as chaves não podem ser duplicadas, mas os valores sim. Map chave (Object) Valor (Object) Pessoa1 Filho1 Pessoa2 Filho2 Pessoa3 Filho PessoaN FilhoN Não aceita elementos repetidos Aceita elementos repetidos 9

10 Desta forma, não há nenhuma restrição específica ao valor null, exceto pelo fato que a condição de chaves não repetidas seja respeitada, ou seja, é possível adicionar apenas uma chave igual a null e quantos valores null forem necessários. Map: A interface oferece três visualizações distintas de um As chaves podem ser visualizadas como um objeto do tipo Set; Os valores podem ser vistos como uma coleção de objetos; Conjunto (objeto do tipo Set) de pares chaves-valor. Usando Estruturas de Listas ArrayList A classe ArrayList (java.util.arraylist) É uma implementação da interface List, onde o tamanho do array pode ser alterado em tempo de execução. Quando utilizamos ArrayList é permitida a inserção de todo tipo de elementos, inclusive null. Construtores ArrayList(): Constrói um ArrayList vazio, com capacidade inicial de 10 posições; ArrayList(int capacidadeinicial): Constrói um ArrayList vazio com a capacidade inicial igual ao parâmetro informado; Métodos para adicionar elementos ao ArrayList void add(int i, Object obj): Adiciona o novo objeto obj na posição i. Se já houver algum elemento na posição "i", este elemento será transportado daquela posição para a próxima a direita e todos os elementos subseqüentes (se houver algum) serão movidos para a direita também. Se o índice for maior que o índice do último elemento, a exceção IndexOutOfBoundsException será lançada. boolean add(object obj): Adiciona o novo objeto obj na última posição do ArrayList; 10

11 Object set(int i, Object obj): Substitui um objeto existente no ArrayList na posição i pelo objeto obj. O objeto que foi substituído é retornado pelo método. Se o índice for maior que o índice do último elemento, a exceção IndexOutOfBoundsException será lançada. É importante observar que os métodos citados anteriormente recebem como parâmetro um Object e, por isto, sempre que é passado um objeto específico, como por exemplo, um Cliente ou uma String é realizado um upcast automático. Método para verificar se o ArrayList contém um determinado elemento: boolean contains(object obj): Retorna true se o ArrayList possui o objeto obj. A análise é baseada no método equals implementado na classe obj. Métodos para recuperar elementos ou posição de um elemento dentro do ArrayList: Object get(int pos): Retorna o elemento que está na posição pos do ArrayList. Se a posição informada for maior que o índice do último elemento inserido, a exceção IndexOutOfBoundsException será lançada. int indexof(object obj): Retorna a posição da primeira ocorrência do objeto obj no ArrayList. Caso o Object obj não seja encontrado, o método irá retornar -1; Método para remover elementos do ArrayList: Object remove(int index): Remove o elemento que estiver na posição index. Transporta todos os elementos subseqüentes(se houver algum) para uma posição à esquerda. Se a posição informada for maior do que a posição do último elemento, a exceção IndexOutOfBoundsException será lançada. Método para verificar o tamanho / número de elementos do ArrayList: int size(): Retorna o número de elementos do ArrayList; Na próxima página temos um exemplo da utilização da classe ArrayList. 11

12 public class Funcionario { private String nome; private int idade; public Funcionario(String nome, int idade){ this.setnome(nome); this.setidade(idade); public int getidade() { return idade; public void setidade(int idade) { this.idade = idade; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public String tostring(){ String str = "Funcionario: " + nome + "\nidade: " + idade + "\n"; return str; import java.util.arraylist; public class TesteArrayList { public static void main(string[] args) { //Cria objetos da classe Funcionario Funcionario func1 = new Funcionario("Joao", 35); Funcionario func2 = new Funcionario("Gerson", 42); Funcionario func3 = new Funcionario("Renato", 27); ArrayList funcionarios = new ArrayList(); //Adiciona os funcionarios no ArrayList funcionarios.add(func1); funcionarios.add(func2); funcionarios.add(func3); imprimefuncionarios(funcionarios); System.out.println("O funcionario 1 serah removido..."); Funcionario func = (Funcionario) funcionarios.remove(1); System.out.println("Funcionario removido: " + func); imprimefuncionarios(funcionarios); private static void imprimefuncionarios(arraylist funcionarios){ Funcionario func; System.out.println("Qtde de funcionarios: " + funcionarios.size()); for (int ncont = 0; ncont < funcionarios.size(); ncont++){ func = (Funcionario) funcionarios.get(ncont); System.out.println(nCont + ": \n" + func); System.out.println(" FIM "); 12

13 Veja a saída gerada pela execução da classe TesteArrayList: Qtde de funcionarios: 3 0: Funcionario: Joao Idade: 35 1: Funcionario: Gerson Idade: 42 2: Funcionario: Renato Idade: FIM O funcionario 1 serah removido... Funcionario removido: Funcionario: Gerson Idade: 42 Qtde de funcionarios: 2 0: Funcionario: Joao Idade: 35 1: Funcionario: Renato Idade: FIM A Interface Iterator (java.util.iterator) A interface Iterator é utilizada para navegar dentro de coleções como a Set e List. As interfaces Set e List definem o método iterator() que retorna um Iterator. A interface Iterator, por sua vez, possui o método hasnext() para identificar se existem mais elementos na coleção. Outro método importante desta classe é aquele utilizado para obter o próximo elemento da coleção e que possui a seguinte assinatura: Object next() 13

14 Veja o exemplo abaixo: import java.util.arraylist; import java.util.iterator; public class TesteIterator { public static void main(string[] args) { String nome1 = "Carlos"; String nome2 = "Josias"; String nome3 = "Marcos"; String nome4 = "Armando"; ArrayList nomes = new ArrayList(); nomes.add(nome1); nomes.add(nome2); nomes.add(nome3); nomes.add(nome4); Iterator iterator = nomes.iterator(); int icont = 1; String nome; while (iterator.hasnext()){ nome = (String) iterator.next(); System.out.println("nome[" + icont++ + "] = " + nome); Saída gerada pela execução do programa acima: nome[1] = Carlos nome[2] = Josias nome[3] = Marcos nome[4] = Armando OBS: Observe que a ordem de inserção dos elementos no ArrayList foi respeitada durante a impressão na tela. Características Java 5(Genéricos e for aprimorado) Métodos e classes genéricas permitem que programadores especifiquem, com uma única declaração de método, um conjunto de métodos relacionados ou, com uma única declaração de classe, um conjunto de tipos relacionados, respectivamente. Os genéricos também fornecem segurança de tipo em tempo de compilação que permite aos programadores capturar tipos inválidos em tempo de compilação. ArrayList, HashSet e HashMap são classes genéricas a partir do J2SE 5.0, com isto é possível especificar um argumento de tipo para indicar o tipo dos elementos em cada lista. 14

15 1 import java.util.arraylist; 2 public class ExemploGenerico{ 3 public static void main (String args[]){ 4 String str1 = "Asia"; 5 String str2 = "America"; 6 String str3 = "Africa"; 7 String str4 = "Europa"; 8 String str5 = "Oceania"; 9 10 ArrayList<String> continentes = new ArrayList<String>(); 11 continentes.add(str1); 12 continentes.add(str2); 13 continentes.add(str3); 14 continentes.add(str4); 15 continentes.add(str5); for(string continente : continentes) 18 System.out.println(continente); 19 Observe na linha 10 que está sendo definido que o tipo <String> será o único tipo permitido para o objeto "continentes", ou seja, será permitido apenas inserir objetos do tipo String nesta coleção. A tentativa de inserir objetos de qualquer outro tipo resulta em erro de compilação. Na linha 17 está sendo utilizado o for aprimorado para percorrer a coleção, obter cada String armazenada nesta e imprimir a mesma na tela. A estrutura for aprimorado já foi vista em detalhes no primeiro semestre do curso. Usando Estruturas de Conjunto HashSet A classe HashSet (java.util.hashset) A classe HashSet é uma das implementações da interface Set, que não é indexada, nem ordenada por natureza. Esta implementação de Set é ideal para buscas, mas não para navegação seqüencial. Construtores HashSet(): Constrói um HashSet vazio, com capacidade inicial de 16 posições; HashSet(int capacidadeinicial): Constrói um HashSet vazio com a capacidade inicial igual ao parâmetro informado; 15

16 Métodos para adicionar elementos ao HashSet boolean add(object obj): adiciona o Object obj se o mesmo já não estiver presente. Este método retorna true se o elemento for inserido; Método para verificar se o HashSet contém um determinado elemento: boolean contains(object obj): Retorna true se o HashSet possui o objeto obj. Ao contrário do ArrayList que possui métodos como get() e indexof() para recuperar elementos ou posição de elementos, o HashSet não possui estes métodos. Método para remover elementos do HashSet: boolean remove(object obj): Remove o elemento se o mesmo estiver presente. Método para verificar o tamanho / número de elementos do HashSet: int size(): Retorna o número de elementos do HashSet; Como a coleção Set não é indexada, devemos utilizar a interface Iterator para navegar dentro desta coleção. Veja o exemplo abaixo: import java.util.hashset; import java.util.iterator; public class TesteHashSet { public static void main(string[] args) { String nome1 = "Carlos"; String nome2 = "Josias"; String nome3 = "Marcos"; String nome4 = "Armando"; HashSet nomes = new HashSet(); nomes.add(nome1); nomes.add(nome2); nomes.add(nome3); nomes.add(nome4); Iterator iterator = nomes.iterator(); 16

17 int icont = 1; String nome; while (iterator.hasnext()){ nome = (String) iterator.next(); System.out.println("nome[" + icont++ + "] = " + nome); Saída gerada pela execução do programa acima: nome[1] = Armando nome[2] = Marcos nome[3] = Josias nome[4] = Carlos OBS: Observe que a ordem de inserção dos elementos no HashSet não foi respeitada durante a impressão na tela. Usando Estruturas de Mapeamento HashMap A classe HashMap (java.util.hashmap) HashMap é uma implementação da interface Map. Esta implementação não garante a ordem dos seus elementos, nem que estarão sempre na mesma ordem. A classe HashMap permite a inserção de null, mas vale lembrar que a chave deve ser única, isto é, apenas uma poderá ser igual a null. Construtores HashMap(): Constrói um HahsMap vazio com capacidade inicial de 16 posições; HashMap(int capacidadeinicial): Constrói um HashMap vazio com a capacidade inicial igual ao parâmetro informado; Método para adicionar um par chave-valor no HashMap Object put (Object chave, Object valor): Adiciona o par chave-valor ao HashMap. Caso tente adicionar um par chave-valor cuja chave já tenha sido adicionada anteriormente, o valor anterior será substituído pelo novo e o método put irá retornar o valor antigo. Caso o par chave-valor não tenha sido adicionado anteriormente, o método put irá retornar null. 17

18 Métodos para verificar se o HashMap contém determinada chave ou valor boolean containskey(object chv): Retorna true se for encontrada a chave chv; boolean containsvalue(object vle): Retorna true se for encontrado o valor vle. Método para recuperar um valor do HashMap Object get(object chv): Retorna o valor associado à chave chv passada como parâmetro. OBS: Caso a chave não seja encontrada, null será retornado. No entanto, existe a possibilidade de haver uma chave associada ao valor null, portanto é muito importante verificar se a chave existe no HashMap, através do método containskey(). Método para remover elementos do HashMap Object remove(object chv): Remove o par chave-valor encontrado no HashMap. Método para verificar o tamanho / número de elementos do HashMap int size(): Retorna o número de pares chave-valor encontrados no HashMap. O exemplo abaixo utiliza um hashmap. Pessoa.java public class Pessoa { private String nome; private String cpf; public Pessoa (String nome, String cpf){ this.nome = nome; this.cpf = cpf; public String getcpf() { return cpf; public void setcpf(string cpf) { 18

19 this.cpf = cpf; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public String tostring(){ String str = "Nome: " + getnome(); str += "\ncpf: " + getcpf(); return str; public boolean equals(object o){ if (o instanceof Pessoa){ Pessoa p = (Pessoa) o; //Verifica se o CPF das pessoas são iguais if (this.getcpf().equals(p.getcpf())) return true; else return false; else return false; TesteHashMap.java import java.util.*; public class TesteHashMap { public static void main (String args[]){ String cpf1 = "251"; Pessoa p1 = new Pessoa ("Carlos", cpf1); String cpf2 = "573"; Pessoa p2 = new Pessoa ("Roberto", cpf2); String cpf3 = "952"; Pessoa p3 = new Pessoa ("Matheus", cpf3); HashMap pessoas = new HashMap(); pessoas.put(cpf1, p1); pessoas.put(cpf2, p2); pessoas.put(cpf3, p3); imprimirmappessoas(pessoas); String chave = "952"; removerelemento(pessoas, chave); imprimirmappessoas(pessoas); 19

20 public static void imprimirmappessoas(hashmap pessoas){ Set chaves = pessoas.keyset(); Iterator iter = chaves.iterator(); String chave; Pessoa p; System.out.println("\n --- HashMap de Pessoas ---"); while (iter.hasnext()){ chave = (String) iter.next(); p = (Pessoa) pessoas.get(chave); System.out.println("Chave: " + chave); System.out.println(p + "\n"); public static void removerelemento(hashmap map, String chave){ Pessoa pessoaremovida = null; if (map.containskey(chave)){ System.out.println("\n --- Pessoa removida do hashmap ---"); pessoaremovida = (Pessoa) map.remove(chave); System.out.println(pessoaRemovida); else{ System.out.println("CPF (chave) nao encontrada no hashmap"); Classificando Listas A classe Collections (Java.util.Collections) Arrays e implementações da interface List, usualmente, são utilizadas para armazenar objetos de mesma classe. Contudo, esses objetos são armazenados segundo a ordem de inclusão. Muitas vezes é interessante que, após a inclusão de todos os objetos, haja uma ordenação usando a "ordem natural". Para conseguirmos essa ordenação, contudo, é necessário definirmos a "ordem natural", significando que a classe a ser armazenada na List precisa implementar a interface Comparable juntamente com seu método compareto(). Ao se analisar a documentação das implementações de List, percebe-se que não existe um método que faça a ordenação. Para fazer esta ordenação podemos empregar o método 20

21 estático sort da classe utilitária Collections. Isso significa que ao executarmos o método Collections.sort(List), a lista tornar-se-á ordenada segundo a sua ordem natural. A interface Comparable (Java.lang.Comparable) Esta interface define classes que são ordenáveis, ou seja, que podem ser automaticamente ordenadas por coleções ou outras classes. A interface Comparable define um método que servirá como regra de ordenação das instâncias da classe que a implementa. Essa padronagem é denominada ordem natural, que é uma regra que deve ser utilizada para saber a precedência dos objetos. Assinatura do método: int CompareTo(Object o) Podemos exemplificar com a classe String, que implementa esta interface e sua implementação de comparação faz a análise caracter a caracter para definição da ordenação de Strings. Logo, pelo conceito de ordem natural da String, a instância "automóvel" estaria localizada antes da instância "barco", pois se compararmos as primeiras letras da instância, a letra 'a' antecede a letra 'b'. Contudo, usando classes criadas durante a abstração do modelo, nem sempre temos um parâmetro adequado para comparar duas instâncias. Se tomarmos como exemplo uma classe Funcionário, possuindo os atributos nome, RG e Registro Funcional, qual dos parâmetros deve ser utilizado para definir a "ordem natural" do objeto? E se tivermos duas instâncias de funcionário "João da Silva" (homônimos), qual deve ser o próximo parâmetro de ordenação? Através da implementação desta interface é possível definir qual é a regra de ordenação natural. O método a ser implementado pela interface possui a assinatura int compareto(object o) usada para comparação da instância atual com qualquer outra instância da mesma classe. 21

22 Um número negativo deverá ser retornado se o objeto estiver "antes" daquele passado como parâmetro, zero se forem iguais e um número positivo, se estiver "após". Vale ressaltar que o método equals da classe que implementa o Comparable deve ser coerente com o resultado do método compareto. Portanto, se as instâncias de objetos A e B retornarem true para A.equals(B), significa que A.compareTo(B) deverá retornar zero e vice-versa. Vejamos agora um exemplo da utilização do método Collections.sort(List) e a implementação do método CompareTo(Object o) da interface Comparable. Para este exemplo utilizaremos duas classes: Aluno.java e TesteAluno.java. A classe Aluno possui dois atributos: nome e RA, e a ordem natural dos objetos desta classe foi definida da seguinte forma: Primeiramente os objetos serão ordenados pelo atributo "nome" seguindo a ordem alfabética e em caso de empate (nomes iguais) será utilizado o RA como segundo critério para desempate. public class Aluno implements Comparable{ private String nome; private long RA; public Aluno(String nome, long RA){ this.nome = nome; this.ra = RA; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public long getra() { return RA; public void setra(long ra) { RA = ra; public boolean equals(object obj){ if (obj instanceof Aluno){ Aluno aluno = (Aluno) obj; if(this.getnome().equalsignorecase(aluno.getnome()) && this.getra() == aluno.getra()){ return true; else{ 22

23 return false; else return false; public int compareto(object obj){ Aluno aluno = (Aluno) obj; int resp = this.getnome().compareto(aluno.getnome()); if (resp!= 0){ return resp; else{ if (this.getra() < aluno.getra()){ return -1; else if (this.getra() > aluno.getra()){ return 1; else{ return 0; public int hashcode(){ return (int)this.ra + this.getnome().hashcode(); public String tostring(){ String aluno = "nome: " + this.getnome() + "\n" + "RA: " + this.getra(); return aluno; Note que a classe Aluno implementa a interface "Comparable" e o método compareto(). O método compareto() faz primeiramente a comparação do atributo "nome" dos objetos e em caso de empate faz a comparação do atributo "RA". A classe "Aluno" também faz a sobrescrita dos métodos equals(), tostring() e hashcode(), todos da classe Object. Veja abaixo a implementação da classe TesteAluno.java. import java.util.arraylist; import java.util.collections; import java.util.iterator; public class TesteAluno { public static void main (String[] args) { Aluno aluno1 = new Aluno("Orlando", 123); Aluno aluno2 = new Aluno("Rafael", 258); Aluno aluno3 = new Aluno("Amanda", 642); Aluno aluno4 = new Aluno("Bruna", 634); Aluno aluno5 = new Aluno("Orlando", 345); Aluno aluno6 = new Aluno("Rafaela", 942); Aluno aluno7 = new Aluno("Amanda", 650); ArrayList alunos = new ArrayList(); alunos.add(aluno1); 23

24 alunos.add(aluno2); alunos.add(aluno3); alunos.add(aluno4); alunos.add(aluno5); alunos.add(aluno6); alunos.add(aluno7); System.out.println("Imprimindo alunos antes da ordenação"); Iterator iter1 = alunos.iterator(); while (iter1.hasnext()){ System.out.println(iTer1.next()); Collections.sort(alunos); System.out.println("\nImprimindo alunos depois da ordenação"); Iterator iter2 = alunos.iterator(); while (iter2.hasnext()){ System.out.println(iTer2.next()); Veja abaixo a saída gerada pela execução da classe TesteAluno.java. Imprimindo alunos antes da ordenação nome: Orlando RA: 123 nome: Rafael RA: 258 nome: Amanda RA: 642 nome: Bruna RA: 634 nome: Orlando RA: 345 nome: Rafaela RA: 942 nome: Amanda RA: 650 Imprimindo alunos depois da ordenação nome: Amanda RA: 642 nome: Amanda RA: 650 nome: Bruna RA: 634 nome: Orlando RA: 123 nome: Orlando RA: 345 nome: Rafael RA: 258 nome: Rafaela RA:

25 Exercícios Sobre Coleções 1) Crie uma classe chamada TesteString e dentro da mesma faça o seguinte: Crie um método main; Dentro do main, crie 10 variáveis do tipo String com nomes de times de futebol; Armazene estas strings em um arraylist; Remova o elemento que está na posição seis do arraylist; Utilize o método get() para obter cada um dos elementos do arraylist e imprima os mesmos na tela. Resposta: import java.util.arraylist; public class TesteString { public static void main(string[] args) { String str1 = "Corinthians"; String str2 = "Palmeiras"; String str3 = "São Paulo"; String str4 = "Santos"; String str5 = "Vasco"; String str6 = "Flamengo"; String str7 = "Botafogo"; String str8 = "Fluminense"; String str9 = "Atletico/MG"; String str10 = "Cruzeiro"; ArrayList times = new ArrayList(); times.add(str1); times.add(str2); times.add(str3); times.add(str4); times.add(str5); times.add(str6); times.add(str7); times.add(str8); times.add(str9); times.add(str10); times.remove(6); String time; for (int ncont = 0; ncont < times.size(); ncont++){ time = (String) times.get(ncont); System.out.println(time); 2) Utilize a classe Java gerada no exercício anterior 25

26 Resposta e substitua o método get() por um Iterator. import java.util.arraylist; import java.util.iterator; public class TesteString { public static void main(string[] args) { String str1 = "Corinthians"; String str2 = "Palmeiras"; String str3 = "São Paulo"; String str4 = "Santos"; String str5 = "Vasco"; String str6 = "Flamengo"; String str7 = "Botafogo"; String str8 = "Fluminense"; String str9 = "Atletico/MG"; String str10 = "Cruzeiro"; ArrayList times = new ArrayList(); times.add(str1); times.add(str2); times.add(str3); times.add(str4); times.add(str5); times.add(str6); times.add(str7); times.add(str8); times.add(str9); times.add(str10); times.remove(6); String time; Iterator iter = times.iterator(); while (iter.hasnext()){ time = (String) iter.next(); System.out.println(time); 3) O objetivo deste exercício é implementar a relação 26

27 entre uma pessoa e seus endereços. Para isto crie três classes Java: Pessoa.java, Endereco.java e TestePessoa.java. Na classe Pessoa faça o seguinte: Crie dois atributos privados: Um do tipo String para o nome da pessoa e outro do tipo ArrayList para armazenar os vários endereços da Pessoa. Crie todos os getters e setters para estes atributos. Crie um construtor alternativo para iniciar o atributo nome. Crie um método chamado "imprimirenderecos1" e dentro do mesmo utilize o método get() do ArrayList para obter cada um dos endereços da Pessoa e imprima os mesmos na tela. Utilize tostring(). Crie um método chamado "imprimirenderecos2" e dentro do mesmo utilize um Iterator para obter cada um dos endereços da Pessoa e imprima os mesmos na tela. Utilize tostring(). Na classe Endereco faça o seguinte: Crie três atributos privados: um do tipo String para o logradouro e outro também do tipo String para o complemento e um do tipo int para o número. Crie os métodos getters e setters para cada um dos atributos. Sobrescreva o método tostring() da classe Object para gerar uma String com os três atributos da classe. Na classe TestePessoa faça o seguinte: Crie um método main. Dentro do main crie um objeto da classe Pessoa e outro da classe ArrayList. Crie um laço de repetição e utilize os métodos da classe JOptionPane para solicitar ao usuário o logradouro, número e complemento. Armazene estas informações em um objeto da classe Endereco e armazene este endereço no ArrayList. Pergunte ao usuário se o mesmo deseja informar mais endereços e em caso afirmativo repita o processo. Se o usuário não quiser mais informar 27

28 endereços, encerre o laço de repetição. O objeto do tipo ArrayList que foi utilizado para guardar os endereços deve ser armazenado no objeto da classe pessoa que foi criado anteriormente. Chame o método imprimirenderecos1 e em seguida chame o método imprimirenderecos2, ambos da classe Pessoa. Resposta import java.util.arraylist; import java.util.iterator; public class Pessoa { private String nome; private ArrayList enderecos; public Pessoa (String nome){ this.nome = nome; public ArrayList getenderecos() { return enderecos; public void setenderecos(arraylist enderecos) { this.enderecos = enderecos; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public void imprimirendereco1(){ Endereco end; for (int ncont = 0; ncont < enderecos.size(); ncont++){ end = (Endereco) enderecos.get(ncont); System.out.println(end); public void imprimirendereco2(){ Endereco end; Iterator iter = enderecos.iterator(); while(iter.hasnext()){ end = (Endereco) iter.next(); System.out.println(end); import java.util.arraylist; 28

29 import javax.swing.joptionpane; public class TestePessoa { public static void main(string[] args) { Pessoa p = new Pessoa("Joao"); Endereco end; ArrayList enderecos = new ArrayList(); String logr; String comp; int num; int resp; do{ logr = JOptionPane.showInputDialog("Digite seu logradouro"); num = Integer.parseInt(JOptionPane.showInputDialog("Digite o numero")); comp = JOptionPane.showInputDialog("Digite o complemento"); end = new Endereco(); end.setlogradouro(logr); end.setnumero(num); end.setcomplemento(comp); enderecos.add(end); resp = JOptionPane.showConfirmDialog(null, "Deseja encerrar?", "Encerrar", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); while(resp == JOptionPane.NO_OPTION); p.setenderecos(enderecos); p.imprimirendereco1(); p.imprimirendereco2(); public class Endereco { private String logradouro; private int numero; private String complemento; public String getcomplemento() { return complemento; public void setcomplemento(string complemento) { this.complemento = complemento; public String getlogradouro() { return logradouro; public void setlogradouro(string logradouro) { this.logradouro = logradouro; public int getnumero() { return numero; public void setnumero(int numero) { 29

30 this.numero = numero; public String tostring(){ return logradouro + " " + numero + " " + complemento; 4) Crie uma classe Java chamada TesteHashSet.java e dentro da mesma faça o seguinte: Crie um atributo privado chamado código (int). Crie os métodos para acessar e alterar o valor deste atributo. Sobrescreva o método equals da classe Object e dentro do mesmo retorne "true" se o código passado com parâmetro for igual ao código do objeto e "false" caso contrário. Sobrescreva o método hashcode da classe Object e dentro do mesmo retorne o valor do atributo código. Crie um método main. Dentro do main faça um laço de repetição e peça para o usuário digitar um número que será código de uma pessoa. Armazene este código em um objeto da classe TesteHashSet e armazene o objeto em um hashset. Caso o código já tenha sido armazenado no hashset, imprima um aviso ao usuário e peça para fornecer outro. OBS: Não se esqueça que é da própria natureza de um hashset não permitir a inclusão de elementos repetidos. Depois que o usuário não desejar mais informar códigos, encerre o laço de repetição. Utilize um Iterator para imprimir na tela todos os códigos informados pelo usuário. Resposta 30

31 import java.util.hashset; import java.util.iterator; import javax.swing.joptionpane; public class TesteHashSet { private int codigo; public int getcodigo() { return codigo; public void setcodigo(int codigo) { this.codigo = codigo; public boolean equals(object o){ if (o instanceof TesteHashSet){ TesteHashSet ts = (TesteHashSet) o; if (this.getcodigo() == ts.getcodigo()){ return true; else{ return false; else{ return false; public int hashcode(){ return this.codigo; public static void main(string[] args) { TesteHashSet ts; HashSet codigos = new HashSet(); int codigo, resp; do{ codigo = Integer.parseInt(JOptionPane.showInputDialog("Digite o codigo")); ts = new TesteHashSet(); ts.setcodigo(codigo); //verifica se o elemento ja foi inserido anteriormente if (codigos.add(ts) == false){ JOptionPane.showMessageDialog(null, "Elemento ja inserido"); resp = JOptionPane.NO_OPTION; else{ resp = JOptionPane.showConfirmDialog(null, "Deseja encerrar?", "Encerrar", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); while(resp == JOptionPane.NO_OPTION); Iterator iter = codigos.iterator(); while (iter.hasnext()){ ts = (TesteHashSet) iter.next(); System.out.println(ts.getCodigo()); 31

32 OBS: Lembrar de comentar com os alunos que na linha: if (codigos.add(ts) == false) O método add, antes de adicionar o objeto ao HashSet, faz a chamada ao método hashcode() e caso o hashcode dos objetos seja o mesmo, então será chamado o método equals e o mesmo irá dizer se os objetos são iguais ou não. 5) Utilize a classe Pessoa.java abaixo e crie uma classe chamada TestePessoa.java. Dentro da classe TestePessoa, crie um método main e faça o seguinte: Crie vários objetos da classe Pessoa (com CPF e nome); Crie um objeto da classe HashMap; Crie um método chamado inserir que recebe como parâmetro um CPF, um objeto da classe Pessoa e o objeto da classe HashMap; Dentro deste método inseria o par CPF- Pessoa no HashMap. Antes de inserir certifique-se que o par CPF-Pessoa já não foi inserido anteriormente. Caso o par já tenha sido inserido, não insira o mesmo; Dentro do main faça um laço de repetição para imprimir na tela o par CPF-Pessoa; public class Pessoa { private String nome; private String cpf; public Pessoa (String nome, String cpf){ this.nome = nome; this.cpf = cpf; public String getcpf() { return cpf; public void setcpf(string cpf) { this.cpf = cpf; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public String tostring(){ String str = "Nome: " + getnome(); str += "\ncpf: " + getcpf(); return str; public boolean equals(object o){ if (o instanceof Pessoa){ 32

33 else Pessoa p = (Pessoa) o; //Verifica se o CPF das pessoas são iguais if (this.getcpf().equals(p.getcpf())) return true; else return false; return false; Resposta import java.util.hashmap; import java.util.iterator; import java.util.set; public class TestePessoa { public static void main (String args[]){ String cpf1 = "251"; Pessoa p1 = new Pessoa ("Carlos", cpf1); String cpf2 = "573"; Pessoa p2 = new Pessoa ("Roberto", cpf2); String cpf3 = "952"; Pessoa p3 = new Pessoa ("Matheus", cpf3); String cpf4 = "573"; Pessoa p4 = new Pessoa("Gerson", cpf4); HashMap pessoas = new HashMap(); inserir(cpf1, p1, pessoas); inserir(cpf2, p2, pessoas); inserir(cpf3, p3, pessoas); inserir(cpf4, p4, pessoas); Set chaves = pessoas.keyset(); Iterator iter = chaves.iterator(); String chave; Pessoa p; System.out.println("\n --- HashMap de Pessoas ---"); while (iter.hasnext()){ chave = (String) iter.next(); p = (Pessoa) pessoas.get(chave); System.out.println("Chave: " + chave); System.out.println(p + "\n"); public static void inserir (String cpf, Pessoa p, HashMap pessoas){ if (!pessoas.containskey(cpf)){ pessoas.put(cpf, p); 6) fddf 33

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

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

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

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

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

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

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

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

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

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 03 Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão

Leia mais

Programação OO em Java

Programação OO em Java Programação OO em Java Baseado nos materiais de Profa. Andréa S. Charão Prof. Guilherme D. Juraszek (rev. de Alexandre G. Silva, 09/2017) Sumário Classes abstratas Interfaces Tipos genéricos Coleções Classes

Leia mais

Coleções em Java. Prof. Gustavo Willam Pereira ENG10082 Programação II. Créditos: Prof. Clayton Vieira Fraga Filho

Coleções em Java. Prof. Gustavo Willam Pereira ENG10082 Programação II. Créditos: Prof. Clayton Vieira Fraga Filho Coleções em Java Prof. Gustavo Willam Pereira ENG10082 Programação II Créditos: Prof. Clayton Vieira Fraga Filho Introdução O que é uma coleção? Um objeto que agrupa múltiplos elementos em uma única unidade

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

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

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br

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

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

public class Funcionario implements Comparable<Funcionario>{

public class Funcionario implements Comparable<Funcionario>{ Classe Funcionário Criar um projeto -> Criar um pacote chamado entity. Criar uma classe completa de Funcionario contendo os atributos (idfuncionario, nome, salariobruto, salarioliquido, sexo, descontos,

Leia mais

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU Aula 5 POO 1 Encapsulamento Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações

Leia mais

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes Aula 08 Encapsulamento Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Projeto Orientado a Objetos Princípios: Abstração; Encapsulamento; Modularidade.

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Prof a. Edhelmira Lima Programação Orientada a Objetos Conteúdo: Exercícios Java Exercício 1 3 Exercício 1 Defina classes e/ou interfaces que modelem objetos geométricos. Os objetos geométricos são: retângulo,

Leia mais

5 Arrays. 5.1 Criando um array. 5.2 Inicializando arrays. c:\>java Array Janeiro tem 31 dias.

5 Arrays. 5.1 Criando um array. 5.2 Inicializando arrays. c:\>java Array Janeiro tem 31 dias. 5 Arrays Arrays são grupos de variáveis do mesmo tipo. As arrays podem armazenar variáveis de qualquer tipo (tipo de dado primitivo ou objetos), mas é importante lembrar que todos os valores devem ser

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

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

Paradigmas da Programação PPROG. Linguagem JAVA. Contentores de Objetos

Paradigmas da Programação PPROG. Linguagem JAVA. Contentores de Objetos PPROG Paradigmas da Programação Linguagem JAVA Contentores de Objetos Nelson Freire (ISEP DEI-PPROG 2012/13) 1/33 Contentores Sumário Noção de Contentor Categorias de Contentores Conjunto Lista Fila de

Leia mais

Java Util Collections - Interfaces Interfaces definidas

Java Util Collections - Interfaces Interfaces definidas Java Util Collections - Interfaces Interfaces definidas 245 Collection Raiz da hierarquia Grupo mais genérico de elementos Não garante nas implementações Duplicatas Ordenação Não possui nenhuma implementação

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

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

Java API. Giuliana Silva Bezerra

Java API. Giuliana Silva Bezerra Java API Giuliana Silva Bezerra Leitura e escrita de arquivos Java.io.file Escrita de arquivos Java.io.PrintWriter 1. Criar instância de Java.io.PrintWriter PrintWriter saida = new PrintWriter( Diretorio

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 07 APRESENTAÇÃO Nesta aula vamos discutir como implementar um tipo abstrato

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

Sistema Futebol - Java

Sistema Futebol - Java Sistema Futebol - Java ARTEFATO 01 Indice 1. CLASSE PESSOA... 2 2. CLASSE JOGADOR... 3 3. CLASSE TECNICO... 5 4. CLASSE SISTEMAFUTEBOL... 6 5. CLASSE SISTEMAFUTEBOLMAIN... 10 6. EXERCÍCIOS... 10 AT01 Sistema

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

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com Coleções List Set Map Classes e interfaces do pacote java.util que representam listas, conjuntos e mapas. Solução flexível para armazenar objetos. Quantidade

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Aula 11 Collections Professores: Elaine Araújo/ Rhavy Maia Baseado no material de aula do professor Frederico Costa Guedes Pereira Introdução Arrays podem dar trabalho...

Leia mais

JAVA COLLECTIONS API: LISTAS

JAVA COLLECTIONS API: LISTAS COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO JAVA COLLECTIONS API: LISTAS FOZ DO IGUAÇU 2013 LISTA DE QUADROS QUADRO 1 EXEMPLO DE LIST,

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 05 Padrões GoF (Singleton e Iterator) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype

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

Java Coleções. Rodrigo C. de Azevedo

Java Coleções. Rodrigo C. de Azevedo Java Coleções Rodrigo C. de Azevedo OMG Certified UML Professional Fundamental OMG Certified UML Professional Intermediate CompTIA Project+ Sun Certified Associate for Java Platform Sun Certified Programmer

Leia mais

1. Por que não utilizar a notação de composição da UML para mostrar que um cachorro é composto de altura, peso, cor e data de nascimento?

1. Por que não utilizar a notação de composição da UML para mostrar que um cachorro é composto de altura, peso, cor e data de nascimento? 1. Por que não utilizar a notação de composição da UML para mostrar que um cachorro é composto de altura, peso, cor e data de nascimento? 2. Esboce um diagrama de classes para um capítulo de livro com

Leia mais

Conceitos de Interface; classes abstratas; Diagrama de sequencia, Diagrama de atividades, classes aninhadas e Listas dinâmicas

Conceitos de Interface; classes abstratas; Diagrama de sequencia, Diagrama de atividades, classes aninhadas e Listas dinâmicas Curso APOO Disciplina Linguagem de Programação II Curso Engenharia da Computação Conceitos de Interface; classes abstratas; Diagrama de sequencia, Diagrama de atividades, classes aninhadas e Listas dinâmicas

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

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

Programação Java Aula 04

Programação Java Aula 04 Programação Java Aula 04 Tópicos da aula Declarar e instanciar arrays. Popular e percorrer arrays. 2 Vetor (array) (1) Declarando um vetor de inteiros: int[] idades = new int[10]; O int[] é um tipo. Uma

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

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

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

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Coleções Avançadas Programação Orientada a Objetos Java Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Objetivos Aprender como o conceito de coleção pode ser expresso de forma genérica Examinar

Leia mais

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias

Leia mais

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de

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

www.cotiinformatica.com.br

www.cotiinformatica.com.br Criar um projeto ->. Criar no pacote entity a classe Usuario com os atributos(idusuario, nomeusuario, login, senha). Implementar a interface Comparable. Criar construtor vazio, o construtor cheio, o tostring

Leia mais

Introdução. Coleção HashMap Classe Java. Interesse

Introdução. Coleção HashMap Classe Java. Interesse Coleção Classe Java Introdução Interesse Modelar correspondências unívocas (1 para 1) entre objetos, do tipo chave-valor. Associações entre: um elemento de um conjunto de chaves um elemento de uma coleção

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

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

Programação Orientada a Objeto

Programação Orientada a Objeto Java Básico Programação Orientada a Objeto Marco Antonio, Arquiteto de Software TJDF Novembro/2005 Classes em java Uma aplicação Java é formada de centenas classes. Não é raro esse número chegar a milhares

Leia mais

01/06/2016 INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS. Programa Capítulo 15. Coleções. A Interface List. A Classe LinkedList. Exercício.

01/06/2016 INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS. Programa Capítulo 15. Coleções. A Interface List. A Classe LinkedList. Exercício. INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 15 Coleções A Interface List A Classe LinkedList Exercício A Interface

Leia mais

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel.

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel. 5COP088 Laboratório de Programação Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Métodos hashcode(), equals() e tostring(); 2) Conjuntos; 3) Genéricos; 4) Resumo. 2 1)

Leia mais

Aula 11 POO 1 Coleções e Arquivos. Profa. Elaine Faria UFU

Aula 11 POO 1 Coleções e Arquivos. Profa. Elaine Faria UFU Aula 11 POO 1 Coleções e Arquivos Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem

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

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

Prova 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins Prova PMR00 o. semestre 0 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço.. ( pontos) Um heap binário é uma árvore binária completa (todos os níveis exceto o último

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for

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

Lista encadeada class No { Coleções. Enumeration. Lista encadeada (continuação) Enumeration Exemplo usando a classe Lista anterior

Lista encadeada class No { Coleções. Enumeration. Lista encadeada (continuação) Enumeration Exemplo usando a classe Lista anterior Coleções Retirado do Tutorial Java class Lista { No inicio = null; Lista encadeada class No { void insereinicio(object obj) { No n = new No(obj, inicio); inicio = n; Object obj; No prox; No(Object obj,

Leia mais

ArrayList. null. null. null ... ArrayList<Ponto2D>

ArrayList. null. null. null ... ArrayList<Ponto2D> FICHA PRÁTICA 4 SÍNTESE TEÓRICA LABORATÓRIO DE COLECÇÕES I ARRAYLIST Em JAVA5, tal como em algumas outras linguagens de programação por objectos, certas estruturações de objectos (colecções) são parametrizadas,

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

Iterator. Professor: Hyggo Almeida

Iterator. Professor: Hyggo Almeida Professor: Hyggo Almeida Utilização de estruturas de dados Vector, ArrayList, HashSet,... Vector collection; public void classexusando(vector col){... ArrayList collection; public void classewusando(arraylist

Leia mais

Quando um Auto-Relacionamento não é mais um Auto-Relacionamento

Quando um Auto-Relacionamento não é mais um Auto-Relacionamento UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Quando um Auto-Relacionamento não é mais um Auto-Relacionamento! 1. Introdução!! Em algumas situações, durante o processo de modelagem,

Leia mais

Programação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.

Programação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes. Programação Java em Ambiente Distribuído Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate Douglas Rocha Mendes Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados

Leia mais

Avançando em Java com Polimorfismo. Prof.: Hugo Barros

Avançando em Java com Polimorfismo. Prof.: Hugo Barros Avançando em Java com Polimorfismo Prof.: Hugo Barros Tópicos da Aula Polimorfismo: Exemplos de polimorfismo Vantagens do polimorfismo Tipos de polimorfismo Métodos Abstratos Classes Abstratas Vinculação

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

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

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga Algoritmos e Programação II Aula 3 Sobrecarga *Adaptado do material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, com nomes

Leia mais

Lista de exercícios 2

Lista de exercícios 2 UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO DE CIÊNCIAS AGRÁRIAS CCA/ UFES Departamento de Engenharia Rural Disciplina: Programação II Professora: Juliana Pinheiro Campos Data: 19/10/2012 Lista de exercícios

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

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

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;

Leia mais

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel) Herança capacidade de uma classe (subclasse) herdar, adquirir atributos e funcionalidades de outra classe (superclasse), podendo juntar algumas especificidades e/ou alterar outras. Existe uma relação tipo

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

AULA 6 - ARRAYS. Array de 10 elementos

AULA 6 - ARRAYS. Array de 10 elementos 1 AULA 6 - ARRAYS Arrays são objetos que armazenam diversas variáveis do mesmo tipo. Eles podem conter variáveis de referência primitivas ou de objeto, mas o array propriamente dito sempre será um objeto

Leia mais

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27 1. Defina os sequintes termos: (a) (1 Ponto) Polimorfismo Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27 (b) (1 Ponto) Sobrescrita de funções (c) (1 Ponto) Sobrecarga

Leia mais

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Programação Estruturada e Orientada a Objetos. Objetos e Métodos Programação Estruturada e Orientada a Objetos Objetos e Métodos 2013 O que veremos hoje? Objetos e Métodos Transparências baseadas no material do Prof. Jailton Carlos Objetivos Aprender a criar construtores;

Leia mais

if (umobjecto!= null && umobjecto instanceof CartaoFidelidade){ titular.equals(((cartaofidelidade) umobjecto).titular) &&

if (umobjecto!= null && umobjecto instanceof CartaoFidelidade){ titular.equals(((cartaofidelidade) umobjecto).titular) && P. Fazendeiro & P. Prata POO - TP03 / 25 _ [... //classe CartaoFidelidade: alguns métodos adicionais] public boolean equals(object umobjecto){ if (umobjecto!= null && umobjecto instanceof CartaoFidelidade){

Leia mais

O JUnit permite a realização de testes de unidades, conhecidos como "caixa branca", facilitando assim a correção de métodos e objetos.

O JUnit permite a realização de testes de unidades, conhecidos como caixa branca, facilitando assim a correção de métodos e objetos. JUnit O JUnit é um framework open-source, criado por Erich Gamma e Kent Beck, com suporte à criação de testes automatizados na linguagem de programação Java. Esse framework facilita a criação de código

Leia mais

Introdução. Extends e Super. Exercício Prático 5 Herança. Nome:

Introdução. Extends e Super. Exercício Prático 5 Herança. Nome: Universidade Estadual da Paraíba Campus VII Gov. Antônio Mariz CCEA Centro de Ciências Exatas e Sociais Aplicadas Licenciatura em Computação Java - Noturno Exercício Prático 5 Herança Nome: Introdução

Leia mais

Vetores Unimensionais

Vetores Unimensionais Vetores Unimensionais Objetivos Entender a importância e a necessidade do uso de Vetores Definição de Manipulação de Vetores Inserir elementos em um vetor (usando laços ou não) Imprimir elementos de um

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

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas) Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01

Leia mais

f1 == f2 <=> n1 == n2 e d1 == d2 // Versão 1.0 class Fraction { private: public: Fraction (int, int); };

f1 == f2 <=> n1 == n2 e d1 == d2 // Versão 1.0 class Fraction { private: public: Fraction (int, int); }; % & ' ( ) * + + +, -. / / 0 / 1 1 2 3 4 5 0 6. 5 7. 8 0 9 3 : 0 /, 3 9 /; 5 < ; 3 5 0 / = 3 5 3 : > / /? 3 @ = 0 5. 8 3 5 0 / 0 :, A A : 0 : 4 5 3 / 0 9? 3 : 0 : 4 5 3 / B 2 3 4 5 0 6. 5 7. 8 0 3 = 0 5.

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

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Pacotes e Encapsulamento Msc. Paulo de Tarso F. Júnior 1 Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes e interfaces

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

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos. 2. Classes e Objetos Uma classe é um modelo que define os atributos e métodos comuns a um conjunto de objetos de forma encapsulada. Atributos são informações ou dados que descrevem, categorizam ou quantificam

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

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador) Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado

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

Linguagem de Programação Visual

Linguagem de Programação Visual Linguagem de Programação Visual Unidade 4 - Introdução à API Swing - JOptionPane Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 API SWING... 3 A CLASSE JOPTIONPANE... 3 PRINCIPAIS MÉTODOS DA CLASSE

Leia mais

Listas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Listas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de

Leia mais