Linguagem de programação implementação de classesCarlos Melo
[1] Classes em Java definem atributos e métodos para representar estados e comportamentos de objetos.
[2] Classes podem herdar atributos e métodos de outras classes e implementar interfaces.
[3] Exemplos mostram como declarar classes, atributos, métodos, construtores, herança e polimorfismo.
Sistemas Distribuídos - Aula 04 - Revisão de JavaArthur Emanuel
Este documento apresenta os principais conceitos da linguagem Java, incluindo classes, objetos, atributos, métodos, encapsulamento, herança, polimorfismo e fluxos de controle. Também discute o uso de arrays, tratamento de erros e métodos estáticos. Por fim, fornece exemplos de exercícios para aplicar os conceitos aprendidos.
O documento discute sobre arrays em Java, apresentando suas características, como declarar e inicializar arrays unidimensionais e multidimensionais, iterar sobre arrays, e exemplos de código. Em três frases:
Arrays são estruturas de dados que armazenam múltiplos valores do mesmo tipo. O documento explica como declarar e manipular arrays unidimensionais e multidimensionais em Java, incluindo inicialização, iteração e exemplos de código. Além disso, discute sobre pontos negativos dos arrays e apresenta alternativas como o recurso enhanced for.
1) O documento apresenta os principais conceitos sobre variáveis, tipos primitivos, referências a objetos e matrizes na linguagem Java. 2) Inclui também uma explicação sobre classes, métodos, atributos, herança, polimorfismo, sobrecarga e outros pilares da programação orientada a objetos no Java. 3) Por fim, aborda tópicos como coletor de lixo, empacotadores, classe Math e outros recursos do framework Java.
O documento discute conceitos fundamentais de orientação a objetos em Java, como:
1) Pacotes agrupam classes relacionadas e definem sua localização no sistema de arquivos;
2) Métodos acessam variáveis de instância de um objeto;
3) Getters e setters encapsulam variáveis de instância e permitem acesso seguro a propriedades de objetos.
O documento resume uma aula de programação orientada a objetos com Java. Aborda laços aninhados, variáveis de classe, instância e constantes, e métodos, incluindo sobrecarga. Explica como definir cada um corretamente e exemplos de seu uso.
O documento apresenta as principais interfaces, implementações e algoritmos da Collection Framework do Java, incluindo List (ArrayList e LinkedList), Set (HashSet e TreeSet) e Map (HashMap e TreeMap). É explicado quando cada uma deve ser utilizada e quais são seus principais prós e contras.
O documento resume os principais tópicos sobre estruturação de classes em Java, incluindo: 1) a estrutura geral de uma classe com atributos, construtores e métodos; 2) instanciação, construtores e herança de classes; 3) operadores this e super para acesso a atributos e métodos.
Linguagem de programação implementação de classesCarlos Melo
[1] Classes em Java definem atributos e métodos para representar estados e comportamentos de objetos.
[2] Classes podem herdar atributos e métodos de outras classes e implementar interfaces.
[3] Exemplos mostram como declarar classes, atributos, métodos, construtores, herança e polimorfismo.
Sistemas Distribuídos - Aula 04 - Revisão de JavaArthur Emanuel
Este documento apresenta os principais conceitos da linguagem Java, incluindo classes, objetos, atributos, métodos, encapsulamento, herança, polimorfismo e fluxos de controle. Também discute o uso de arrays, tratamento de erros e métodos estáticos. Por fim, fornece exemplos de exercícios para aplicar os conceitos aprendidos.
O documento discute sobre arrays em Java, apresentando suas características, como declarar e inicializar arrays unidimensionais e multidimensionais, iterar sobre arrays, e exemplos de código. Em três frases:
Arrays são estruturas de dados que armazenam múltiplos valores do mesmo tipo. O documento explica como declarar e manipular arrays unidimensionais e multidimensionais em Java, incluindo inicialização, iteração e exemplos de código. Além disso, discute sobre pontos negativos dos arrays e apresenta alternativas como o recurso enhanced for.
1) O documento apresenta os principais conceitos sobre variáveis, tipos primitivos, referências a objetos e matrizes na linguagem Java. 2) Inclui também uma explicação sobre classes, métodos, atributos, herança, polimorfismo, sobrecarga e outros pilares da programação orientada a objetos no Java. 3) Por fim, aborda tópicos como coletor de lixo, empacotadores, classe Math e outros recursos do framework Java.
O documento discute conceitos fundamentais de orientação a objetos em Java, como:
1) Pacotes agrupam classes relacionadas e definem sua localização no sistema de arquivos;
2) Métodos acessam variáveis de instância de um objeto;
3) Getters e setters encapsulam variáveis de instância e permitem acesso seguro a propriedades de objetos.
O documento resume uma aula de programação orientada a objetos com Java. Aborda laços aninhados, variáveis de classe, instância e constantes, e métodos, incluindo sobrecarga. Explica como definir cada um corretamente e exemplos de seu uso.
O documento apresenta as principais interfaces, implementações e algoritmos da Collection Framework do Java, incluindo List (ArrayList e LinkedList), Set (HashSet e TreeSet) e Map (HashMap e TreeMap). É explicado quando cada uma deve ser utilizada e quais são seus principais prós e contras.
O documento resume os principais tópicos sobre estruturação de classes em Java, incluindo: 1) a estrutura geral de uma classe com atributos, construtores e métodos; 2) instanciação, construtores e herança de classes; 3) operadores this e super para acesso a atributos e métodos.
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Professor Samuel Ribeiro
Classes
Atributos e métodos para as classes
Objeto this para acessar dados de instância
Overloading de métodos
Importar e criar pacotes
Usar modificadores de acesso para controlar o acesso aos elementos de uma classe
1) O documento apresenta conceitos avançados de Java, incluindo exceções, Java Beans, métodos da classe Object como toString() e equals(), e coleções.
2) É explicado como implementar singletons em Java para garantir uma única instância de uma classe.
3) Exceções são apresentadas como uma forma de indicar condições anormais no programa, e é mostrado como tratá-las com blocos try-catch.
Este documento discute conceitos básicos de Java como encapsulamento, construtores, modificador static, enumerações, herança, sobrescrita e polimorfismo. O documento explica como encapsular atributos e métodos, criar construtores, usar modificador static em variáveis e métodos, definir enumerações e como classes podem herdar características através da herança.
O documento discute programação orientada a objetos no .NET Framework, incluindo conceitos como classes, objetos, encapsulamento, herança, polimorfismo, propriedades, métodos, construtores e destruidores.
O documento discute programação orientada a objetos no .NET Framework, incluindo conceitos como classes, objetos, encapsulamento, herança, polimorfismo, propriedades, métodos, construtores e destruidores. Também aborda tópicos como modificadores de acesso, instanciação de classes, membros estáticos, tipos anônimos, substituição de membros, interfaces, genéricos e delegados.
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysLoiane Groner
Curso de Estrutura de Dados e Algoritmos com Java Completo com Certificado e Fórum para dúvidas: http://loiane.training
Site: http://loiane.training
Blog: http://loiane.com
Facebook: https://www.facebook.com/loianegroner
Github: https://github.com/loiane
Twitter: https://twitter.com/loiane
Este documento discute conceitos de herança em programação orientada a objetos em Java. Explica que herança permite que classes "filhas" herdem atributos e métodos de classes "pais". Também aborda sobreescrita de métodos, construtores, modificadores de acesso e exemplos práticos de implementação de herança.
1) O documento apresenta os detalhes de uma aula sobre programação orientada a objetos com Java, incluindo avaliação, conteúdo da prova e agenda.
2) A agenda inclui tópicos como operador ternário, enums, varargs, autoboxing/unboxing, definindo e sobrecarregando construtores e uso do método this.
3) Exemplos de código são fornecidos para ilustrar esses tópicos.
Programação C - Aula 1
Revisão de conceitos Orientação a Objetos.
Bacharelado em Sistemas de Informação
Faculdade Dom Bosco de Porto Alegre
Prof. Filipo Mór
www.filipomor.com
Lista IV de Programação Orientada a Objetosunifesptk
O documento apresenta 13 exercícios sobre programação orientada a objetos envolvendo vetores, coleções e estruturas de dados. Os exercícios abordam tópicos como ordenação de vetores, cálculo de média, busca em lista ligada, pilhas, filas, árvores binárias e contagem de palavras.
O documento discute variáveis e métodos estáticos em Java, explicando que variáveis estáticas pertencem à classe ao invés de objetos e podem ser acessadas sem a necessidade de um objeto. Também aborda métodos estáticos, que são chamados através do nome da classe, e padrões de nomenclatura para variáveis, métodos e classes em Java.
O documento discute classes internas em Java, incluindo suas quatro categorias (classes dentro de instruções, métodos, objetos e estáticas) e seus usos. Classes internas podem ser usadas para maior reutilização de código e flexibilidade, mas também aumentam a complexidade do código.
O documento discute classes internas em Java, incluindo suas quatro categorias (classes dentro de instruções, métodos, objetos e estáticas) e seus usos típicos como tratamento de eventos em GUI e manipulação de coleções. Classes internas podem aumentar a reutilização de código e flexibilidade, mas também a complexidade.
Este documento apresenta os conceitos básicos de programação orientada a objetos em Java. Aborda tópicos como classes, objetos, atributos, métodos, variáveis locais e globais. Inclui exemplos de como declarar classes, criar objetos, definir métodos e utilizar modificadores de acesso.
1) O documento discute estruturas de dados como Map e Set, métodos importantes como put(), get(), e implementações como HashMap e HashSet.
2) Map armazena dados em pares chave-valor e não permite chaves duplicadas, enquanto Set armazena elementos únicos sem ordenação.
3) Threads permitem executar tarefas simultaneamente através de métodos como start(), run(), sleep(), enquanto synchronized garante acesso exclusivo a recursos compartilhados.
O documento resume os principais conceitos de classe e objeto na programação orientada a objetos. Explica que uma classe define os atributos e métodos comuns a um conjunto de objetos e que um objeto é uma instância de uma classe, caracterizado por seus atributos e capacidades. Também apresenta a sintaxe básica para definir classes e objetos em Java.
AULA 1 - Classes e Objetos com codigicação Java.pptJoberthSilva
O documento resume os principais conceitos de classe e objeto na programação orientada a objetos. Ele define classe como uma denominação para um conjunto de objetos que compartilham atributos e operações, e objeto como uma instância de uma classe. Também descreve como classes e objetos são representados em UML e como são declaradas em Java.
O documento resume os principais conceitos de programação orientada a objetos em PHP, incluindo a estrutura básica de classes, atributos, métodos, construtores, instanciação de objetos, herança, interfaces, classes abstratas e exemplos de aplicação destes conceitos.
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Professor Samuel Ribeiro
Classes
Atributos e métodos para as classes
Objeto this para acessar dados de instância
Overloading de métodos
Importar e criar pacotes
Usar modificadores de acesso para controlar o acesso aos elementos de uma classe
1) O documento apresenta conceitos avançados de Java, incluindo exceções, Java Beans, métodos da classe Object como toString() e equals(), e coleções.
2) É explicado como implementar singletons em Java para garantir uma única instância de uma classe.
3) Exceções são apresentadas como uma forma de indicar condições anormais no programa, e é mostrado como tratá-las com blocos try-catch.
Este documento discute conceitos básicos de Java como encapsulamento, construtores, modificador static, enumerações, herança, sobrescrita e polimorfismo. O documento explica como encapsular atributos e métodos, criar construtores, usar modificador static em variáveis e métodos, definir enumerações e como classes podem herdar características através da herança.
O documento discute programação orientada a objetos no .NET Framework, incluindo conceitos como classes, objetos, encapsulamento, herança, polimorfismo, propriedades, métodos, construtores e destruidores.
O documento discute programação orientada a objetos no .NET Framework, incluindo conceitos como classes, objetos, encapsulamento, herança, polimorfismo, propriedades, métodos, construtores e destruidores. Também aborda tópicos como modificadores de acesso, instanciação de classes, membros estáticos, tipos anônimos, substituição de membros, interfaces, genéricos e delegados.
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysLoiane Groner
Curso de Estrutura de Dados e Algoritmos com Java Completo com Certificado e Fórum para dúvidas: http://loiane.training
Site: http://loiane.training
Blog: http://loiane.com
Facebook: https://www.facebook.com/loianegroner
Github: https://github.com/loiane
Twitter: https://twitter.com/loiane
Este documento discute conceitos de herança em programação orientada a objetos em Java. Explica que herança permite que classes "filhas" herdem atributos e métodos de classes "pais". Também aborda sobreescrita de métodos, construtores, modificadores de acesso e exemplos práticos de implementação de herança.
1) O documento apresenta os detalhes de uma aula sobre programação orientada a objetos com Java, incluindo avaliação, conteúdo da prova e agenda.
2) A agenda inclui tópicos como operador ternário, enums, varargs, autoboxing/unboxing, definindo e sobrecarregando construtores e uso do método this.
3) Exemplos de código são fornecidos para ilustrar esses tópicos.
Programação C - Aula 1
Revisão de conceitos Orientação a Objetos.
Bacharelado em Sistemas de Informação
Faculdade Dom Bosco de Porto Alegre
Prof. Filipo Mór
www.filipomor.com
Lista IV de Programação Orientada a Objetosunifesptk
O documento apresenta 13 exercícios sobre programação orientada a objetos envolvendo vetores, coleções e estruturas de dados. Os exercícios abordam tópicos como ordenação de vetores, cálculo de média, busca em lista ligada, pilhas, filas, árvores binárias e contagem de palavras.
O documento discute variáveis e métodos estáticos em Java, explicando que variáveis estáticas pertencem à classe ao invés de objetos e podem ser acessadas sem a necessidade de um objeto. Também aborda métodos estáticos, que são chamados através do nome da classe, e padrões de nomenclatura para variáveis, métodos e classes em Java.
O documento discute classes internas em Java, incluindo suas quatro categorias (classes dentro de instruções, métodos, objetos e estáticas) e seus usos. Classes internas podem ser usadas para maior reutilização de código e flexibilidade, mas também aumentam a complexidade do código.
O documento discute classes internas em Java, incluindo suas quatro categorias (classes dentro de instruções, métodos, objetos e estáticas) e seus usos típicos como tratamento de eventos em GUI e manipulação de coleções. Classes internas podem aumentar a reutilização de código e flexibilidade, mas também a complexidade.
Este documento apresenta os conceitos básicos de programação orientada a objetos em Java. Aborda tópicos como classes, objetos, atributos, métodos, variáveis locais e globais. Inclui exemplos de como declarar classes, criar objetos, definir métodos e utilizar modificadores de acesso.
1) O documento discute estruturas de dados como Map e Set, métodos importantes como put(), get(), e implementações como HashMap e HashSet.
2) Map armazena dados em pares chave-valor e não permite chaves duplicadas, enquanto Set armazena elementos únicos sem ordenação.
3) Threads permitem executar tarefas simultaneamente através de métodos como start(), run(), sleep(), enquanto synchronized garante acesso exclusivo a recursos compartilhados.
O documento resume os principais conceitos de classe e objeto na programação orientada a objetos. Explica que uma classe define os atributos e métodos comuns a um conjunto de objetos e que um objeto é uma instância de uma classe, caracterizado por seus atributos e capacidades. Também apresenta a sintaxe básica para definir classes e objetos em Java.
AULA 1 - Classes e Objetos com codigicação Java.pptJoberthSilva
O documento resume os principais conceitos de classe e objeto na programação orientada a objetos. Ele define classe como uma denominação para um conjunto de objetos que compartilham atributos e operações, e objeto como uma instância de uma classe. Também descreve como classes e objetos são representados em UML e como são declaradas em Java.
O documento resume os principais conceitos de programação orientada a objetos em PHP, incluindo a estrutura básica de classes, atributos, métodos, construtores, instanciação de objetos, herança, interfaces, classes abstratas e exemplos de aplicação destes conceitos.
Ähnlich wie Classes Anônimas, Internas e Coleções Java (20)
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
3. Uma classe ainda pode ser definida dentro de outra
classe, sendo somente uma delas definida como pública
em seu arquivo físico de implementação, como já
abordado anteriormente. Este tipo de implementação é
interessante em algumas situações:
• Objetos de classes internas podem acessar
diretamente os componentes de sua classe criadora,
mesmo sendo estes privados (qualificador private)
• Invisibilidade das classes internas para outras classes
do mesmo pacote
• Emprego de classes internas anônimas na definição
de processamentos que usem retornos para
acionamentos em tempo de execução
• Uso conveniente em programas dirigidos por eventos
Classes Internas
4. A implementação deste tipo de classe fornece as
mesmas mais privilégios de acesso, apesar de serem
convertidas para classes normais, com nomes diferentes
($) na interpretação em Java.
public class Aluno extends Pessoa implements Frequencia, Avaliacao
{
: // componentes e programação da classe “externa”
private class Notas implements Atividades
{
: // componentes e programação da classe interna
}
}
Como outra classe qualquer, a interna também pode ser
definida com seus elementos padrões (qualificador,
interface, e todos aqueles usados para definir uma classe).
Classes Internas
5. A linguagem Java também permite criar classes
localmente em um único método, sendo esta
possibilidade empregada na criação de tipos que serão
usados, geralmente, uma única vez no programa.
Esta possibilidade identifica um recurso de
implementação muito vantajoso sobre o acesso as
classes locais, tornando-as totalmente ocultas ao
“mundo exterior”, inclusive para sua classe criadora.
• Somente seu método criador sabe da existência desta
classe, podendo só ele utilizá-la
• Como será criado só um objeto desta classe, não é
necessária nem a definição de seu nome (anônima)
• É possível retornar um objeto dentro deste método
que não tenha nome, funcionando adequadamente
Classes Internas Anônimas
6. Estas classes anônimas não podem possuir métodos
construtores, sendo seus parâmetros de construção
fornecidos ao construtor da superclasse.
Especificamente, para as situações onde uma classe
interna implemente um interface, ela não pode possuir
parâmetros de construção, sendo seus parênteses
sempre necessários.
Um cuidado na identificação da construção de um
objeto de uma classe ou de uma classe interna anônima,
que estende essa classe do objeto, é averiguada pela
constatação do que vem logo após os parênteses que
fecham os parâmetros de construção do objeto, onde a
abertura de chaves indica uma definição de classe
interna anônima.
Classes Internas Anônimas
7. A simples necessidade de ocultar uma classe dentro
de outra pode ser conseguida pela implementação de
uma classe interna. No entanto, para não permitir que o
objeto desta classe interna faça referência a sua classe
externa a mesma deverá ser definida com static.
/** Síntese
* Objetivo: Encontrar maior e menor valor do vetor
* Entrada: sem entrada (geração aleatória)
* Saída: maior e menor valor
*/
import java.text.DecimalFormat;
public class ProcuraValores {
public static void main(String[] args) {
DecimalFormat mostra= new DecimalFormat("0.000");
final int MAX = 100; // tamanho do vetor
double [] vetor = new double[MAX];
for(int aux=0; aux<vetor.length; aux++)
vetor[aux]=10 * Math.random(); // gera aleatório
Classes Internas Anônimas
8. // continuação do exemplo anterior
BuscaValores.mostra(vetor);
BuscaValores.Par valores;
valores = BuscaValores.maxmin(vetor);
System.out.println("tMÁXIMO = " +
mostra.format(valores.getMaximo()));
System.out.println("tMÍNIMO = " +
mostra.format(valores.getMinimo()));
}
} // final da classe ProcuraValores
// Nova classe no mesmo arquivo físico
class BuscaValores
{
public static class Par // define classe interna
{
private double maximo;
private double minimo;
Classes Internas Anônimas
9. // continuação do exemplo anterior
public Par (double max, double min) { // construtor
maximo = max;
minimo = min;
}
public double getMaximo() {
return maximo;
}
public double getMinimo() {
return minimo;
}
} // final da classe interna Par
public static void mostra(double [] vetor) {
System.out.println("*MOSTRA VALORES ALEATÓRIOS*");
for(int aux=0; aux<vetor.length; aux++)
System.out.println(" Vetor[" + aux +"]= " +
vetor[aux]);
System.out.println("nnANÁLISE");
}
Classes Internas Anônimas
10. // continuação do exemplo anterior
public static Par maxmin(double [] vetor) {
if(vetor.length == 0)
return new Par(0,0);
else {
double max = vetor[0];
double min = vetor[0];
for(int aux=1; aux<vetor.length; aux++) {
if(max < vetor[aux])
max = vetor[aux];
if(min > vetor[aux])
min = vetor[aux];
}
return new Par(max,min);
}
}
} // final da classe externa BuscaValores
Classes Internas Anônimas
11. /** Síntese
* Objetivo: Apresentar uma janela gráfica Swing
* Entrada: sem entrada
* Saída: janela gráfica
*/
import java.awt.event.*;
import javax.swing.JFrame;
public class ExemploAnonima extends JFrame {
public static void main(String[] args) {
JFrame janela = new ExemploAnonima();
janela.setBounds(100,100,250,250);
janela.setTitle("Exemplo");
janela.setVisible(true);
janela.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evJanela) {
System.exit(0); //método que encerra o programa
}
}); // termina a classe interna anônima
}
} // termina a classe
Observe um pequeno exemplo com uma janela Swing.
Classes Internas Anônimas
12. A manipulação adequada de coleções de dados em
Java foi implementada por meio do framework
Collections, que envolve um conjunto de classes e
interfaces.
Collection
• Disponível no pacote java.util
• Interface raiz de outras interfaces que permitem a
manipulação de diversas estruturas de dados compostas
• Define as operações básicas sobre as coleções e
disponibiliza vários métodos de alto nível
objeto
objeto
objeto
objeto
COLEÇÃO
Coleções
13. List
• Disponível no pacote java.util
• Esta interface (List) estende Collection
• O comportamento para inserção de elementos em uma
lista deve ser realizado no final da lista (método add),
respeitando as características fundamentais da lista
quando este método é sobrescrito de Collection
• Métodos add e addAll de Collection são
sobrecarregados e possuem índice para indicar a
posição da inserção
• Operações sobre lista envolvem acesso seqüencial aos
elementos anteriores àquele que está na posição
especificada pelo índice
• Custo de acesso aumenta proporcionalmente ao
aumento do valor de seu índice, enquanto nos Arrays o
custo é independente do valor de seu índice
Coleções
14. • add(int, object): inseri o objeto indicado na posição
informada pelo objeto alvo e desloca os elementos desta
posição e as posições maiores para à direita
• boolean addAll(int, collection): inseri toda coleção a partir
da posição indicada, deslocando para direita os elementos
desta posição e superiores. Retorna true se lista do objeto
alvo for alterada e false se não for modificada
• Object get(int): retorna o objeto da lista na posição indicada
• int indexOf(object): retorna primeira posição que ocorre o
object na lista ou -1 se ele não existir nesta lista
• Object remove(int): remove elemento da lista que esta na
posição indicada e desloca os elementos das posições
subseqüentes para estas posições anteriores
• set(int, object): guarda objeto na posição indicada
• List subList(int, int): retorna elementos que estão entre
início e fim (-1) indicados
Métodos Importantes no Uso da List
Coleções
15. /** Síntese
* Objetivo: mostrar meses impares em alguma ordem
* Entrada: nenhuma (atribuição)
* Saída: meses em algumas ordenações
*/
import java.util.Arrays;
import java.util.List;
import java.util.Collections;
public class ColecaoMeses {
public static void main(String[] args) {
String [] meses = {"Janeiro", "Março", "Maio",
"Julho", "Setembro", "Novembro"};
List lista;
// Ordem alfabética crescente pelo nome do mês
Arrays.sort(meses); // método de alto nível
// Transforma um Array em Lista
lista = Arrays.asList(meses);
System.out.println("nMESES EM ORDEM ALFABÉTICA");
// Mostra a Lista em Ordem
for(int aux=0; aux < lista.size();aux++)
System.out.print(lista.get(aux) + "t");
poderia ser java.util.*;
Coleções
16. // continuação do exemplo anterior
// Inverte os dados da lista
Collections.reverse(lista);
System.out.println("nnMOSTRA LISTA INVERTIDA");
// Imprime a Lista Invertida
for(int aux=0; aux < lista.size();aux++)
System.out.print(lista.get(aux) + "t");
}
}
• O método size obtém o tamanho da lista, enquanto
que get recupera um elemento específico desta lista
• Vários métodos de alto nível estão disponíveis na
manipulação de estrutura de dados e coleções
– sort; binarySearch, reverse, shuffle, fill, copy,
min, max, entre outros métodos interessantes
• O método asList(array) transforma um Array em
List, podendo ser manipulado de várias formas (vários
métodos disponíveis para um List e não no Array)
Coleções
17. Dentre as classes que implementam a interface List
serão estudadas somente a LinkedList e ArrayList.
LinkedList
• Implementação de List que usa internamente lista
encadeada, sendo em Java implementa como uma lista
duplamente encadeada (cada elemento possui
referência ao elemento seguinte e ao anterior)
• Acréscimo de novos elementos acontece com a
inserção de novos nós entre os nós adjacentes, sendo
necessário primeiro a localização desta posição
• Recomenda-se esta implementação quando a maioria
das modificações acontece no início ou final da lista
• Percorrer a lista é feito de maneira seqüencial com uso
do objeto iterator e não aleatoriamente, respeitando
índices diretamente
• Exemplo de FIFO (first in first out - fila em E.D.A.)
Coleções
18. • LinkedList: cria uma lista vazia
• LinkedList(collection): cria uma lista contendo os
elementos da collection
• addFirst(object): inseri object como primeiro elemento
• addLast(object): inseri object como último elemento
• Object getFirst(): retorna o primeiro elemento da lista
• Object getLast(): retorna o último elemento da lista
• Object removeFirst(): remove e retorna o primeiro
elemento da lista
• Object removeLast(): remove e retorna o último elemento
da lista
Métodos Importantes no Uso da LinkedList
toString: retorna uma representação da lista dos elementos da
estrutura de dados representada pelo objeto alvo, estando na
ordem em que seriam obtidos pela interface iterator (next).
Coleções
19. Iterator
• Disponível no pacote java.util
• Consistem em duas interfaces definidas em Collection
que percorrem a estrutura de dados desejada
• O objeto Iterator criado é posicionado no início da
estrutura de dados, retornando seu primeiro elemento
quando método next for acionado
ListIterator
• Interface estendida de Iterator que adiciona recursos
específicos para coleções do tipo List
• Percorre uma lista nos dois sentidos, permitido pela
indexação dos elementos da List
• Classes que implementam a interface List definem
também o método listIterator, sendo seu retorno usado
como retorno do Iterator
Coleções
20. • Iterator: cria objeto para percorrer uma estrutura de dados
• Object next(): retorna o próximo elemento da estrutura de
dados que está sendo percorrida pelo objeto alvo, onde a
exceção NoSuchElementException indica seu final
• boolean hasNext(): retorna true se existir próximo elemento
ou false se não existir
• remove: remove elemento da estrutura de dados retornado
pelo último next, onde a exceção IllegalStateException
ocorre se o elemento não existir (não foi executado o next)
Métodos Importantes no Uso da Iterator
Coleções
21. • ListIterator: cria objeto para percorrer uma lista
• Object previous(): retorna elemento anterior ao elemento
corrente, gerando exceção NoSuchElementException
se não existir elemento anterior
• boolean hasPrevious(): retorna true se existir um elemento
anterior ao elemento corrente e false em caso contrário
• int previousIndex(): retorna o índice do elemento anterior
ao corrente e -1 caso não exista elemento anterior
• int nextIndex(): retorna o índice do elemento posterior ao
elemento corrente ou o tamanho da lista se
este elemento não existir
• set(object): altera o elemento corrente para o object
indicado na posição corrente, retornado pelo
último next ou previous executado
Métodos Importantes no Uso da ListIterator
Coleções
22. A partir da versão 5 (Java 1.5) foi agregado a
linguagem Java uma variação da instrução for para
trabalhar com coleções de objetos.
Esta instrução é conhecida for each e percorre uma
coleção de objetos por meio de uma definição mais
concisa e elegante.
for(<tipo> <identificador> : <expressão>)
<tipo> - tipo de dado da coleção (classe)
<identificador> - nome do tipo a ser iterado
<expressão> - deve ser uma instancia de classe
capaz de implementar Iterable
Exemplo que mostrará todos os carros armazenados em
uma lista de carros cadastrados:
for(Carro auto : lista)
System.out.println(auto);
Repetição Alternativa para Coleções
23. /** Síntese
* Objetivo: Mostrar lista de nomes em ordem
* Entrada: Nenhuma (só atribuições)
* Saída: Nomes em ordem alfabética crescente
*/
import java.util.*;
public class ColecaoStrings {
public static void main(String[] args) {
String nome1 = new String("Edson Arantes");
String nome2 = new String("Luiza Brunet");
String nome3 = new String("Diego Maradona");
// Lista de quaisquer objetos
List lista = new ArrayList();
lista.add(nome1);
lista.add(nome2);
lista.add(nome3);
Collections.sort(lista);
for(String str : lista)
System.out.println(str);
}
}
Coleções
24. 1) Elabore um programa orientado a objeto que possua uma
superclasse abstrata chamada Datas que guardará dia, mês e
ano válidos a partir de 1901 (valor definido em uma constante
ANO). Crie sua subclasse chamada Aniversario que
armazenará um nome completo que não pode ser nulo e nem
possuir menos que 5 caracteres. Este valor também estará
definido em outra constante (MINIMO).
Seu programa permitirá que o usuário cadastre quantos
aniversariantes ele desejar, podendo a qualquer momento fazer
Novo cadastro, Mostrar todos cadastro por ordem do cadastro
realizado, Mostrar somente os nomes cadastrados em ordem
alfabética por meio de uma lista em Java (List), Apresentar os
nomes cadastrados misturado (ver na API) pela Collections ou
ainda Sair do programa. Todas estas consultas de dados só
poderão ser feitas pela for-each ou usando o Iterator ou
ListIterator.
Exercício de Fixação
25. Pessoa
Object equals
método de Object sobreposto
em Pessoa
equals novo
O método equals é definido em Objet e compara os
endereços de memória dos 2 objetos envolvidos.
No entanto, a classe String sobrepõe este método para
comparar os conteúdos que estão armazenados nestas duas
respectivas strings que serão comparadas por meio do
equals retornando verdadeiro (true) se elas forem
idênticas ou falso (false) se forem diferentes.
Normalmente, existe a necessidade de se comparar objetos
de uma mesma classe a fim de se apurar se tal objeto já está
armazenado ou não. Isso pode ocorrer em POO, por meio da
sobreposição do método equals, similar a toString.
Sobreposição de Método do Object
26. /* Síntese
* Objetivo: cadastrar um conjunto de pessoas
* Entrada: quantidade, nome e sexo de cada pessoa
* Saída: listar todas pessoas cadastradas
*/
package principal;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import visao.Visao;
public class Main {
public static void main(String[] args) {
ArrayList pessoas = new ArrayList();
int qtde = 0;
qtde = Visao.obtemQuantidade("Digite a quantidade"+
" de Pessoas que serão cadastradas?");
Visao.cadastraPessoa(pessoas, qtde);
Visao.mostrarCadastros(pessoas);
}
}
//
PACOTE e Sobreposição do equals
27. /*Síntese
* Conteúdo: nome, sexo
* - getNome(), getSexo(), setNome(String)
* - setSexo(int),toString(Pessoa),equals(Object)
*/
package dados;
public class Pessoa {
// atributos
private String nome;
private char sexo;
// métodos
public Pessoa (String nome, char sexo) {
this.setNome(nome);
this.setSexo(sexo);
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public char getSexo() {
return sexo;
}
PACOTE e Sobreposição do equals
29. // continuação do exemplo anterior
package visao;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import dados.*;
import validacao.*;
public class Visao {
public static int obtemQuantidade(String mensagem) {
String num;
do {
num = JOptionPane.showInputDialog(null,
mensagem,"Cadastro",JOptionPane.QUESTION_MESSAGE);
} while (!Validacao.isValidaQtde(num));
return(Integer.parseInt(num));
}
public static void cadastraPessoa(ArrayList pessoas,
int maximo) {
String nome, sexo;
for(int aux=0; aux < maximo; aux++) {
do {
nome = JOptionPane.showInputDialog(null,
"Informe o nome da pessoa:", "Cadastro",
JOptionPane.QUESTION_MESSAGE);
} while(!Validacao.isValidaNome(nome));
PACOTE e Sobreposição do equals
30. // continuação do exemplo anterior
do {
sexo = JOptionPane.showInputDialog(null,
"Informe o sexo da pessoa:","Cadastro",
JOptionPane.QUESTION_MESSAGE);
} while(!Validacao.isValidaSexo(sexo));
Pessoa pes = new Pessoa(nome,
sexo.toUpperCase().charAt(0));
if(aux > 0) {
if(!Validacao.isValidaPessoa(pessoas,pes,aux)) {
JOptionPane.showMessageDialog(null,
"Esta Pessoa já está cadastrada. " +
"Cadastre um outro","Erro",
JOptionPane.ERROR_MESSAGE);
aux--;
System.out.println("Pessoa não cadastrada.");
}
else {
pessoas.add(pes);
System.out.println("Pessoa " + (aux+1) +
" cadastrada com sucesso.");
}
}
else {
PACOTE e Sobreposição do equals
31. // continuação do exemplo anterior
pessoas.add(pes);
System.out.println("Pessoa " + (aux+1) +
" cadastrada com sucesso.");
}
}
}
public static void mostrarCadastros(ArrayList pessoas) {
System.out.println("nnnnNomettSexo");
System.out.println("=============t==========");
for(int aux = 0; aux < pessoas.size(); aux++)
System.out.println(pessoas.get(aux));
}
}
//
/*Síntese
* Conteúdo:
* - isValidaQtde(String), isValidaNome(String),
* - isValidaSexo(String),
* - isValidaPessoa(ArrayList, Pessoa, int)
*/
package validacao;
import java.util.ArrayList;
import javax.swing.JOptionPane;
PACOTE e Sobreposição do equals
32. // continuação do exemplo anterior
import dados.*;
public class Validacao {
public static boolean isValidaQtde(String num) {
int qtde = 0;
try {
qtde = Integer.parseInt(num);
} catch (NumberFormatException exc) {
JOptionPane.showMessageDialog(null,
"Valor incorreto, pois deve ser inteiro e " +
"maior que zero.", "Erro",
JOptionPane.ERROR_MESSAGE);
return false;
}
if(qtde <= 0) {
JOptionPane.showMessageDialog(null,
"Valor inválido, pois deve ser maior que zero.",
"Erro",JOptionPane.ERROR_MESSAGE);
return false;
}
else
return true;
}
PACOTE e Sobreposição do equals
34. 2)Faça um programa orientado a objeto que consiga armazenar quantos
cadastros de pessoas o usuário desejar, coletando de cada uma o sexo,
nome completo e idade em anos. Nenhum destes dados pode ser nulo ou
menor e igual a zero. Este cadastro só poderá acontecer se for
confirmando que não existe tal pessoa no cadastro. Seria considera
mesma pessoa somente quando o nome completo e a idade forem iguais
e o cadastro não será mais permitido de ser realizado. Toda vez que
uma igualdade (duplicidade) for detectada deverá ser registrado na
console que houve uma duplicidade e todos os dados armazenados pelo
registro da duplicidade deverão ser apresentados em um linha, sendo na
linha abaixo mostrado os dados que se estava tentando realizar um novo
cadastro. Este processo de cadastro será interrompido e os dados
informados até o momento não poderão ser armazenados no ArrayList
que os estava guardando, mas o processo de cadastro ainda continuará
sendo realizado se o usuário desejar. Quanto este (usuário) não quiser
mais fazer cadastro todos os registros já efetuados serão mostrados na
console com um salto de 10 linhas de qualquer outra informação que
possa existir na mesma. Todas estas consultas de dados só poderão ser
feitas pela for-each.
Exercício de Fixação
35. • HORSTMANN, C. S., CORNELL, G., Core Java2 ,
volume 1, Makron Books, 2001.
Capítulo 5
• FURGERI, S., Java 2: Ensino Didático: Desenvolvendo
e Implementando Aplicações, São Paulo: Érica, 2002.
Capítulo 7
• Universidade de Brasília (UnB FGA)
http://cae.ucb.br/conteudo/unbfga
(escolha a disciplina Orientação a Objetos no menu superior)
Material para Consulta e Apoio ao Conteúdo
Referência de Criação e Apoio ao Estudo