JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.

Slides:



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

Programação Orientada a Objetos*
Programação em Java Prof. Maurício Braga
Classes Abstratas e Interfaces
Modificadores Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/2008.
Utilitários Marco Antonio. Enum Como o nome sugere, é uma enumeração de opções para uma determinada situação A principal vantagem é limitar as opções.
Modificadores Marco Antonio. Introdução Em todas as linguagens de programação o acesso a classes/métodos deve seguir algumas regras.
Capítulo 1 Introdução.
Prof. Thiago Pereira Rique
Projeto de Sistemas de Software
Padrão de Projeto Interpreter
Herança, sobrecarga e ligação dinâmica zHerança zReferência super zSobrecarga de métodos zSobreposição zLigação dinâmica de métodos zfinal.
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Generalização, Especialização e Conceitos
Iniciação ao Java – Márcio F. Campos
Programação Básica em Java
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Membros estáticos.
Treinamento no GRADEp HelloWorld Args. Slide 2 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 HelloWorld e Args Autoria Autora.
Capítulo 9 Herança 1.
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Clique para editar o estilo do subtítulo mestre Desenvolvimento web com Java JAVA 5 – Declarações e Controles de Acesso.
Classes e objetos Arrays e Sobrecarga
Herança e Polimorfismo
Introdução a Programação JAVA
Concorrência em Java Threads em Java.
Threads: Introdução e Implementação
Tipos Agregados Homogêneos e Listas
Programação Orientada a Objetos com Java
C# Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 23/09/2002 Autor: Marden Menezes Costa Propriedades.
Capítulo 2 Java Servlets.
Padrão de Projeto Visitor
JAVA Linguagem Ambiente de Desenvolvimento
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Interfaces.
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
Chamada Remota de Procedimentos
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages
Os métodos equals() e hashCode()
Capítulo 1 Tipo enumerado.
Professora Lucélia Oliveira
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a.
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Wagner Santos C. de Jesus
Tratamento de Exceções
Programação Orientada a Objetos - Java
Curso de Aprendizado Industrial Desenvolvedor WEB
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Prof. Gilberto Irajá Müller
Introdução às Java Threads
Java Kickstart, day 2 Semelhanças com linguagem C.
Classes Abstratas P. O. O. Prof. Ângela e Grace.
Aula Prática 4 Monitoria IP/CC (~if669).
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Polimorfismo.
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
Classes Abstratas e Interface
Capítulo 1. Classes internas  Classe interna  Instância da classe interna  Referências na classe interna  Modificadores de membros  Classe interna.
Aula Prática 5 05/05/2010. //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Herança Modelagem e Programação Orientada a Objetos
Modificadores Programação II.
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);
Transcrição da apresentação:

JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ

JAVA 2 Sumário 1.Introdução 2. API

JAVA 3 1. Introdução Java possui, desde a JDK 5, um recurso na linguagem (facility) para representar tipos enumerados com segurança. Este recurso é um novo quasi-tipo chamado enum. Um exemplo simples é mostrado a seguir:

JAVA 4 1. Introdução enum EstacoesDoAno { PRIMAVERA, VERAO, OUTONO, INVERNO } Esta construção funciona como uma definição de constantes. Entretanto, esta simplicidade é só aparente. Na verdade, esta declaração é uma abreviação compreendida pelo compilador do que seria, aproximadamente (!), a declaração:

JAVA 5 1. Introdução final Class EstacoesDoAno extends java.lang.Enum { private final EstacoesDoAno e; public EstacoesDoAno(EstacoesDoAno e){ this.e = e; } static final EstacoesDoAno PRIMAVERA = new EstacoesDoAno(EstacoesDoAno.PRIMAVERA); static final EstacoesDoAno VERAO = new EstacoesDoAno(EstacoesDoAno.VERÃO); static final EstacoesDoAno OUTONO = new EstacoesDoAno(EstacoesDoAno.OUTONO); static final EstacoesDoAno INVERNO = new EstacoesDoAno(EstacoesDoAno.INVERNO); } (observe a circularidade)

JAVA 6 1. Introdução Na verdade, o enum é mais complexo que isto: - A declaração da classe java.lang.Enum, na verdade é: public abstract class Enum > extends Object implements Comparable, Serializable Como pode ser visto, a declaração de Enum é abstrata e circular!

JAVA 7 1. Introdução Enum é abstrata porque ela é a classe base de todo enum. O construtor de Enum é protected. A classe definida (ou melhor dizendo, o quasi-tipo enum EstacoesDoAno ) é final.

JAVA 8 1. Introdução - O programador pode acrescentar outros construtores, campos e métodos ao enum ! - Cada constante é na verdade uma referência (static e final) para uma instância da classe que estende Enum. - Tomamos a liberdade de chamar de quasi-tipo um conjunto finito de instâncias.

JAVA 9 1. Introdução Podemos então ver a declaração: enum EstacoesDoAno { PRIMAVERA, VERAO, OUTONO, INVERNO } como sendo: static{ EstacoesDoAno.PRIMAVERA = new EstacoesDoAno(EstacoesDoAno.PRIMAVERA); EstacoesDoAno.VERAO = new EstacoesDoAno(EstacoesDoAno. VERAO); EstacoesDoAno.OUTONO = new EstacoesDoAno(EstacoesDoAno. OUTONO); EstacoesDoAno.INVERNO = new EstacoesDoAno(EstacoesDoAno. INVERNO); }

JAVA Introdução Podemos ainda, por exemplo, adicionar os seguintes campos, métodos e construtor: public enum EstacoesDoAno { PRIMAVERA(new GregorianCalendar(2009,02,10)), VERAO(new GregorianCalendar(2009,05,10)), OUTONO(new GregorianCalendar(2009,8,10)), INVERNO(new GregorianCalendar(2009,11,10)); private GregorianCalendar data; EstacoesDoAno(GregorianCalendar data){ this.data = data; } public GregorianCalendar data(){return data;} }

JAVA Introdução O programa que usa este exemplo é: public class Main { static EstacoesDoAno estacao; public static void main(String[] args) { for(EstacoesDoAno e : estacao.values()){ System.out.println( e.name() + " começa em " + e.data().get(GregorianCalendar.DATE) + "/" + (e.data().get(GregorianCalendar.MONTH)+1) +.); }

JAVA Introdução A saída deste é: PRIMAVERA começa em 10/3. VERAO começa em 10/6. OUTONO começa em 10/9. INVERNO começa em 10/12.

JAVA API

JAVA API

JAVA API

JAVA API