SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Fundamentos da Linguagem Java



   Classes Básicas da API do Java

               Datas e Strings



           Ludimila Monjardim Casagrande
                       2012
Manipulação de Datas
A Classe Abstrata: Calendar

     A classe abstrata Calendar encapsula um
         momento no tempo representado em
         milissegundos. Também provê métodos para
         manipulação desse momento.

     A subclasse concreta de Calendar mais usada é
         a GregorianCalendar, que representa o
         calendário usado pela maior parte dos países.




Classes Básicas do Java   ©2012 Ludimila Monjardim Casagrande   3
A Classe Abstrata: Calendar

     Para obter um Calendar que encapsula o
         instante atual (data e hora), usamos o método
         estático getInstance():
         Calendar c = Calendar.getInstance();
         System.out.println("Dia do Mês: "
                                  + c.get(Calendar.DAY_OF_MONTH));
         System.out.println("Dia da Semana: "
                                  + c.get(Calendar.DAY_OF_WEEK));

         Um possível resultado é:
         Dia do Mês: 11
         Dia da Semana: 2
         No exemplo acima, o dia da semana 2 representa a segunda-feira.


Classes Básicas do Java        ©2012 Ludimila Monjardim Casagrande         4
A Classe Abstrata: Calendar

     A classe Calendar numera os meses e os dias
         da semana da seguinte forma:
            Os meses de janeiro (january) a dezembro
             (december) são numerados de 0 a 11.
            Os dias da semana são numerados de 1 a 7,
             sendo o domingo (sunday) o primeiro dia.




Classes Básicas do Java   ©2012 Ludimila Monjardim Casagrande   5
A Classe: GregorianCalendar

     Principais construtores:
         GregorianCalendar()
         GregorianCalendar(int year, int month, int dayOfMonth)
         GregorianCalendar(int year, int month, int dayOfMonth,
                          int hourOfDay, int minute, int second)


            Calendar c1 = new GregorianCalendar(2012, 4, 11);
                                   equivale a
Calendar c2 = new GregorianCalendar(2012, Calendar.MAY, 11);

Classes Básicas do Java    ©2012 Ludimila Monjardim Casagrande     6
A Classe: Date

     Recomenda-se evitar o uso da classe Date porque a
         maior parte de seus métodos estão marcados como
         deprecated, porém, ela ainda tem amplo uso legado nas
         bibliotecas do Java. Ela foi substituída no Java 1.1 pelo
         Calendar, para haver suporte correto à
         internacionalização do sistema de datas.
     Você pode pegar um Date de um Calendar e vice-versa
         através dos getters e setters de time:

          Calendar c = new GregorianCalendar(2005, Calendar.OCTOBER, 12);
          Date d = c.getTime();
          c.setTime(d);


Classes Básicas do Java     ©2012 Ludimila Monjardim Casagrande             7
A Classe: Date

     A classe Date numera os meses e os dias da
         semana da seguinte forma:
            Os meses de janeiro (january) a dezembro
             (december) são numerados de 0 a 11, assim
             como acontece na classe Calendar.
            Os dias da semana são numerados de 0 a 6,
             sendo o domingo (sunday) o primeiro dia,
             diferentemente da numeração usada pela classe
             Calendar.


Classes Básicas do Java   ©2012 Ludimila Monjardim Casagrande   8
A Classe Abstrata: DateFormat

     A classe java.text.DateFormat permite converter
         Strings de inputs do usuário para Dates,
         seguindo um determinado formato.
     Serve também para fazer o inverso: pegar uma
         data e gerar uma String de saída em um certo
         formato.
     A classe SimpleDateFormat, que estende
         DateFormat, é a que oferece a forma mais fácil
         de fazer tudo isso.

Classes Básicas do Java   ©2012 Ludimila Monjardim Casagrande   9
A Classe: SimpleDateFormat

     // usuário digita uma String
     String s = "21/02/1999";
     // date format
     DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
     // converte para Date
     Date data = df.parse(s);
     // formata para String de novo
     String formatada = df.format(data);



Classes Básicas do Java   ©2012 Ludimila Monjardim Casagrande   10
Exemplo usando Date
   private void botaoSalvarActionPerformed(java.awt.event.ActionEvent evt) {
        try {
           Usuario u = new Usuario();
           u.setCodigo(Integer.parseInt(campoCodigo.getText()));       Considerando que o
           u.setNome(campoNome.getText());                             atributo data é do
           u.setLogin(campoLogin.getText());                           tipo Date na classe
                                                                       Usuario.
           DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
           df.setLenient(false);
           Date data = df.parse(campoData.getText());
           u.setData(data);

           CadUsuario cad = new CadUsuarioImpl();
           cad.adicionar(u);
           JOptionPane.showMessageDialog(this, "Usuário cadastrado com sucesso.");
        } catch (ParseException ex) {
           JOptionPane.showMessageDialog(this, "Formato de data inválido.");
        } catch (Exception ex) {
           JOptionPane.showMessageDialog(this, "Erro ao salvar o usuário.");
        }
   }
Classes Básicas do Java          ©2012 Ludimila Monjardim Casagrande                         11
Exemplo usando Calendar
   private void botaoSalvarActionPerformed(java.awt.event.ActionEvent evt) {
        try {
           Usuario u = new Usuario();
           u.setCodigo(Integer.parseInt(campoCodigo.getText()));
                                                                       Considerando que o
           u.setNome(campoNome.getText());
           u.setLogin(campoLogin.getText());
                                                                       atributo data é do
                                                                       tipo Calendar na classe
           DateFormat df = new SimpleDateFormat("dd/MM/yyyy");         Usuario.
           df.setLenient(false);
           Calendar data = new GregorianCalendar();
           data.setTime(df.parse(campoData.getText()));
           u.setData(data);

           CadUsuario cad = new CadUsuarioImpl();
           cad.adicionar(u);
           JOptionPane.showMessageDialog(this, "Usuário cadastrado com sucesso.");
        } catch (ParseException ex) {
           JOptionPane.showMessageDialog(this, "Formato de data inválido.");
        } catch (Exception ex) {
           JOptionPane.showMessageDialog(this, "Erro ao salvar o usuário.");
        }
   }
Classes Básicas do Java          ©2012 Ludimila Monjardim Casagrande                        12
Comportamento da classe Date

     Métodos de Date:
         DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
         df.setLenient(false); //torna a validação mais rígida
         Date data = df.parse("18/06/2012"); //segunda-feira
         System.out.println("Dia do mês: " + data.getDate());          //resultado: 18
         System.out.println("Mês: " + data.getMonth());                //resultado: 5
         System.out.println("Ano: " + data.getYear());                 //resultado: 112
         System.out.println("Dia da semana: " + data.getDay()); //resultado: 1




Classes Básicas do Java          ©2012 Ludimila Monjardim Casagrande                      13
Comportamento da classe Calendar

     Métodos de Calendar:
     DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
     df.setLenient(false);
     Calendar data = new GregorianCalendar();
     data.setTime(df.parse("18/06/2012"));
     System.out.println("Dia do Mês: " + data.get(Calendar.DAY_OF_MONTH));   //resultado: 18
     System.out.println("Mês: " + data.get(Calendar.MONTH));                 //resultado: 5
     System.out.println("Ano: " + data.get(Calendar.YEAR));                  //resultado: 2012
     System.out.println("Dia da Semana:" + data.get(Calendar.DAY_OF_WEEK)); //resultado: 2




Classes Básicas do Java           ©2012 Ludimila Monjardim Casagrande                         14
Manipulação de Strings
A Classe: String

     A classe String é imutável. Sendo assim, quando
         algo é concatenado a uma String, esta não é
         alterada. O que ocorre é a criação de uma nova
         String.
     Por isso trabalhar com uma mesma String
         diversas vezes pode ter um efeito colateral: gerar
         inúmeras Strings temporárias.
     Isto prejudica a performance da aplicação
         consideravelmente.

Classes Básicas do Java   ©2012 Ludimila Monjardim Casagrande   16
A Classe: StringBuffer

     Se for necessário trabalhar muito com a
         manipulação de uma mesma String (por
         exemplo, dentro de um laço), o ideal é utilizar a
         classe StringBuffer.
     A classe StringBuffer representa uma sequência
         de caracteres.
     Diferentemente da String, ela é mutável e, por
         isso, evita problemas de performance.



Classes Básicas do Java   ©2012 Ludimila Monjardim Casagrande   17
A Classe: StringBuffer
   import java.util.Scanner;
   public class Teste {
       public static void main(String[ ] args) {
           Scanner entrada = new Scanner(System.in);
           String nome;
           System.out.println("Informe seu nome: ");
           nome = entrada.next();


           StringBuffer sb = new StringBuffer("Olá ");
           sb.append(nome);
           sb.append("!");
           System.out.println(sb);
       }
   }

Classes Básicas do Java              ©2012 Ludimila Monjardim Casagrande   18
Tutoriais do Java

     The Java Tutorials
            Getting Started
                  http://java.sun.com/docs/books/tutorial/getStarted/
            Learning the Java Language
                  http://java.sun.com/docs/books/tutorial/java/




Classes Básicas do Java        ©2012 Ludimila Monjardim Casagrande       19
Referências

     Caelum: Ensino e Soluções em Java.
         FJ-11 – Java e Orientação a Objetos.
         http://www.caelum.com.br/curso/fj-11-java-
         orientacao-objetos/




Classes Básicas do Java   ©2012 Ludimila Monjardim Casagrande   20

Mais conteúdo relacionado

Mais procurados

Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggersflaviognm
 
Introduction to JSX
Introduction to JSXIntroduction to JSX
Introduction to JSXMicah Wood
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)Helder da Rocha
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfMarcelo Silva
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane FidelixCris Fidelix
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1Bruno Catão
 
Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDVinicius Buffolo
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Leinylson Fontinele
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Ricardo Terra
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha casoEder Samaniego
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultasjulianaveregue
 
Spring boot - an introduction
Spring boot - an introductionSpring boot - an introduction
Spring boot - an introductionJonathan Holloway
 

Mais procurados (20)

Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
 
Java web Lección 04 - JSTL
Java web Lección 04 - JSTLJava web Lección 04 - JSTL
Java web Lección 04 - JSTL
 
Introduction to JSX
Introduction to JSXIntroduction to JSX
Introduction to JSX
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdf
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1
 
Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBD
 
POO - 20 - Wrapper Classes
POO - 20 - Wrapper ClassesPOO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
 
O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Introduction to thymeleaf
Introduction to thymeleafIntroduction to thymeleaf
Introduction to thymeleaf
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Spring Core
Spring CoreSpring Core
Spring Core
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
 
Spring boot - an introduction
Spring boot - an introductionSpring boot - an introduction
Spring boot - an introduction
 

Destaque

POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosLudimila Monjardim Casagrande
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosLudimila Monjardim Casagrande
 
Manipulação de Datas em Java
Manipulação de Datas em JavaManipulação de Datas em Java
Manipulação de Datas em JavaSidney Roberto
 
Estrutura de Programas
Estrutura de ProgramasEstrutura de Programas
Estrutura de ProgramasSidney Roberto
 
Exercicio classes
Exercicio classesExercicio classes
Exercicio classesfeiosanelma
 
Exercícios de programação orientado a objeto
Exercícios de programação orientado a objetoExercícios de programação orientado a objeto
Exercícios de programação orientado a objetoGleyciana Garrido
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)jose-junior89
 
Exercicios Analise e Desenvolvimento de projetos
Exercicios Analise e Desenvolvimento de projetosExercicios Analise e Desenvolvimento de projetos
Exercicios Analise e Desenvolvimento de projetosRoberto Ferreira
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercíciosGuilherme
 
Plano de Ação para Atendimento aos Requisitos dos Clientes
Plano de Ação para Atendimento aos Requisitos dos ClientesPlano de Ação para Atendimento aos Requisitos dos Clientes
Plano de Ação para Atendimento aos Requisitos dos ClientesYthia Karla
 
POO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e InterfacePOO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e InterfaceFelipe J. R. Vieira
 

Destaque (20)

POO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em JavaPOO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em Java
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
Manipulação de Datas em Java
Manipulação de Datas em JavaManipulação de Datas em Java
Manipulação de Datas em Java
 
Estrutura de Programas
Estrutura de ProgramasEstrutura de Programas
Estrutura de Programas
 
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de ArgumentosPOO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
 
Exercicio classes
Exercicio classesExercicio classes
Exercicio classes
 
Lod law of demeter
Lod law of demeterLod law of demeter
Lod law of demeter
 
3 orientacao-objetos
3 orientacao-objetos3 orientacao-objetos
3 orientacao-objetos
 
Exercícios de programação orientado a objeto
Exercícios de programação orientado a objetoExercícios de programação orientado a objeto
Exercícios de programação orientado a objeto
 
Orientação a Objetos (2)
Orientação a Objetos (2)Orientação a Objetos (2)
Orientação a Objetos (2)
 
Padrões de design orientado a objetos
Padrões de design orientado a objetosPadrões de design orientado a objetos
Padrões de design orientado a objetos
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)
 
Exercicios Analise e Desenvolvimento de projetos
Exercicios Analise e Desenvolvimento de projetosExercicios Analise e Desenvolvimento de projetos
Exercicios Analise e Desenvolvimento de projetos
 
PCII - AULA 2: HERANÇA EM JAVA
PCII -  AULA 2: HERANÇA EM JAVAPCII -  AULA 2: HERANÇA EM JAVA
PCII - AULA 2: HERANÇA EM JAVA
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
05 poo-ii
05   poo-ii05   poo-ii
05 poo-ii
 
Plano de Ação para Atendimento aos Requisitos dos Clientes
Plano de Ação para Atendimento aos Requisitos dos ClientesPlano de Ação para Atendimento aos Requisitos dos Clientes
Plano de Ação para Atendimento aos Requisitos dos Clientes
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
POO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e InterfacePOO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e Interface
 

Semelhante a POO - 24 - Classes Básicas do Java - Datas

agendamento de tarefas com java se e ee
agendamento de tarefas com java se e eeagendamento de tarefas com java se e ee
agendamento de tarefas com java se e eeelliando dias
 
Técnicas de Refactoring
Técnicas de RefactoringTécnicas de Refactoring
Técnicas de RefactoringRodrigo Branas
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetrosMaurício Linhares
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Natanael Fonseca
 
Manipulação de datas em java
Manipulação de datas em javaManipulação de datas em java
Manipulação de datas em javaNorton Guimarães
 
Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Rodrigo Branas
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dadosHenrique Fernandes
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcJeison Barros
 
Curso de Java (Parte 4)
Curso de Java (Parte 4)Curso de Java (Parte 4)
Curso de Java (Parte 4)Mario Sergio
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...Manuel Menezes de Sequeira
 
Finalmente java sabe trabalhar com data e hora (gu java sc)
Finalmente java sabe trabalhar com data e hora (gu java sc)Finalmente java sabe trabalhar com data e hora (gu java sc)
Finalmente java sabe trabalhar com data e hora (gu java sc)Michel Graciano
 

Semelhante a POO - 24 - Classes Básicas do Java - Datas (20)

Java6
Java6Java6
Java6
 
agendamento de tarefas com java se e ee
agendamento de tarefas com java se e eeagendamento de tarefas com java se e ee
agendamento de tarefas com java se e ee
 
POO - 04 - Variávies em Java
POO - 04 - Variávies em JavaPOO - 04 - Variávies em Java
POO - 04 - Variávies em Java
 
Técnicas de Refactoring
Técnicas de RefactoringTécnicas de Refactoring
Técnicas de Refactoring
 
Aula5
Aula5Aula5
Aula5
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Refactoring
RefactoringRefactoring
Refactoring
 
Dip the dependency inversion principle
Dip   the dependency inversion principleDip   the dependency inversion principle
Dip the dependency inversion principle
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
Manipulação de datas em java
Manipulação de datas em javaManipulação de datas em java
Manipulação de datas em java
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Usando a data grid wpf
Usando a data grid wpfUsando a data grid wpf
Usando a data grid wpf
 
Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dados
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbc
 
Curso de Java (Parte 4)
Curso de Java (Parte 4)Curso de Java (Parte 4)
Curso de Java (Parte 4)
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
 
Finalmente java sabe trabalhar com data e hora (gu java sc)
Finalmente java sabe trabalhar com data e hora (gu java sc)Finalmente java sabe trabalhar com data e hora (gu java sc)
Finalmente java sabe trabalhar com data e hora (gu java sc)
 
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em JavaPOO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 

Mais de Ludimila Monjardim Casagrande (14)

Gerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com ScrumGerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com Scrum
 
POO - 23 - Coleções da API do Java
POO -  23 - Coleções da API do Java POO -  23 - Coleções da API do Java
POO - 23 - Coleções da API do Java
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
POO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de DadosPOO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de Dados
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
POO - 12 - A Classe Object
POO - 12 - A Classe ObjectPOO - 12 - A Classe Object
POO - 12 - A Classe Object
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
POO - 08 - Prática de Encapsulamento
POO - 08 - Prática de EncapsulamentoPOO - 08 - Prática de Encapsulamento
POO - 08 - Prática de Encapsulamento
 
POO - 07 - Operadores do Java
POO - 07 - Operadores do  JavaPOO - 07 - Operadores do  Java
POO - 07 - Operadores do Java
 
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de DesenvolvimentoPOO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 

POO - 24 - Classes Básicas do Java - Datas

  • 1. Fundamentos da Linguagem Java Classes Básicas da API do Java Datas e Strings Ludimila Monjardim Casagrande 2012
  • 3. A Classe Abstrata: Calendar  A classe abstrata Calendar encapsula um momento no tempo representado em milissegundos. Também provê métodos para manipulação desse momento.  A subclasse concreta de Calendar mais usada é a GregorianCalendar, que representa o calendário usado pela maior parte dos países. Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 3
  • 4. A Classe Abstrata: Calendar  Para obter um Calendar que encapsula o instante atual (data e hora), usamos o método estático getInstance(): Calendar c = Calendar.getInstance(); System.out.println("Dia do Mês: " + c.get(Calendar.DAY_OF_MONTH)); System.out.println("Dia da Semana: " + c.get(Calendar.DAY_OF_WEEK)); Um possível resultado é: Dia do Mês: 11 Dia da Semana: 2 No exemplo acima, o dia da semana 2 representa a segunda-feira. Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 4
  • 5. A Classe Abstrata: Calendar  A classe Calendar numera os meses e os dias da semana da seguinte forma:  Os meses de janeiro (january) a dezembro (december) são numerados de 0 a 11.  Os dias da semana são numerados de 1 a 7, sendo o domingo (sunday) o primeiro dia. Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 5
  • 6. A Classe: GregorianCalendar  Principais construtores: GregorianCalendar() GregorianCalendar(int year, int month, int dayOfMonth) GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second) Calendar c1 = new GregorianCalendar(2012, 4, 11); equivale a Calendar c2 = new GregorianCalendar(2012, Calendar.MAY, 11); Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 6
  • 7. A Classe: Date  Recomenda-se evitar o uso da classe Date porque a maior parte de seus métodos estão marcados como deprecated, porém, ela ainda tem amplo uso legado nas bibliotecas do Java. Ela foi substituída no Java 1.1 pelo Calendar, para haver suporte correto à internacionalização do sistema de datas.  Você pode pegar um Date de um Calendar e vice-versa através dos getters e setters de time: Calendar c = new GregorianCalendar(2005, Calendar.OCTOBER, 12); Date d = c.getTime(); c.setTime(d); Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 7
  • 8. A Classe: Date  A classe Date numera os meses e os dias da semana da seguinte forma:  Os meses de janeiro (january) a dezembro (december) são numerados de 0 a 11, assim como acontece na classe Calendar.  Os dias da semana são numerados de 0 a 6, sendo o domingo (sunday) o primeiro dia, diferentemente da numeração usada pela classe Calendar. Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 8
  • 9. A Classe Abstrata: DateFormat  A classe java.text.DateFormat permite converter Strings de inputs do usuário para Dates, seguindo um determinado formato.  Serve também para fazer o inverso: pegar uma data e gerar uma String de saída em um certo formato.  A classe SimpleDateFormat, que estende DateFormat, é a que oferece a forma mais fácil de fazer tudo isso. Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 9
  • 10. A Classe: SimpleDateFormat // usuário digita uma String String s = "21/02/1999"; // date format DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); // converte para Date Date data = df.parse(s); // formata para String de novo String formatada = df.format(data); Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 10
  • 11. Exemplo usando Date private void botaoSalvarActionPerformed(java.awt.event.ActionEvent evt) { try { Usuario u = new Usuario(); u.setCodigo(Integer.parseInt(campoCodigo.getText())); Considerando que o u.setNome(campoNome.getText()); atributo data é do u.setLogin(campoLogin.getText()); tipo Date na classe Usuario. DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); df.setLenient(false); Date data = df.parse(campoData.getText()); u.setData(data); CadUsuario cad = new CadUsuarioImpl(); cad.adicionar(u); JOptionPane.showMessageDialog(this, "Usuário cadastrado com sucesso."); } catch (ParseException ex) { JOptionPane.showMessageDialog(this, "Formato de data inválido."); } catch (Exception ex) { JOptionPane.showMessageDialog(this, "Erro ao salvar o usuário."); } } Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 11
  • 12. Exemplo usando Calendar private void botaoSalvarActionPerformed(java.awt.event.ActionEvent evt) { try { Usuario u = new Usuario(); u.setCodigo(Integer.parseInt(campoCodigo.getText())); Considerando que o u.setNome(campoNome.getText()); u.setLogin(campoLogin.getText()); atributo data é do tipo Calendar na classe DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); Usuario. df.setLenient(false); Calendar data = new GregorianCalendar(); data.setTime(df.parse(campoData.getText())); u.setData(data); CadUsuario cad = new CadUsuarioImpl(); cad.adicionar(u); JOptionPane.showMessageDialog(this, "Usuário cadastrado com sucesso."); } catch (ParseException ex) { JOptionPane.showMessageDialog(this, "Formato de data inválido."); } catch (Exception ex) { JOptionPane.showMessageDialog(this, "Erro ao salvar o usuário."); } } Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 12
  • 13. Comportamento da classe Date  Métodos de Date: DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); df.setLenient(false); //torna a validação mais rígida Date data = df.parse("18/06/2012"); //segunda-feira System.out.println("Dia do mês: " + data.getDate()); //resultado: 18 System.out.println("Mês: " + data.getMonth()); //resultado: 5 System.out.println("Ano: " + data.getYear()); //resultado: 112 System.out.println("Dia da semana: " + data.getDay()); //resultado: 1 Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 13
  • 14. Comportamento da classe Calendar  Métodos de Calendar: DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); df.setLenient(false); Calendar data = new GregorianCalendar(); data.setTime(df.parse("18/06/2012")); System.out.println("Dia do Mês: " + data.get(Calendar.DAY_OF_MONTH)); //resultado: 18 System.out.println("Mês: " + data.get(Calendar.MONTH)); //resultado: 5 System.out.println("Ano: " + data.get(Calendar.YEAR)); //resultado: 2012 System.out.println("Dia da Semana:" + data.get(Calendar.DAY_OF_WEEK)); //resultado: 2 Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 14
  • 16. A Classe: String  A classe String é imutável. Sendo assim, quando algo é concatenado a uma String, esta não é alterada. O que ocorre é a criação de uma nova String.  Por isso trabalhar com uma mesma String diversas vezes pode ter um efeito colateral: gerar inúmeras Strings temporárias.  Isto prejudica a performance da aplicação consideravelmente. Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 16
  • 17. A Classe: StringBuffer  Se for necessário trabalhar muito com a manipulação de uma mesma String (por exemplo, dentro de um laço), o ideal é utilizar a classe StringBuffer.  A classe StringBuffer representa uma sequência de caracteres.  Diferentemente da String, ela é mutável e, por isso, evita problemas de performance. Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 17
  • 18. A Classe: StringBuffer import java.util.Scanner; public class Teste { public static void main(String[ ] args) { Scanner entrada = new Scanner(System.in); String nome; System.out.println("Informe seu nome: "); nome = entrada.next(); StringBuffer sb = new StringBuffer("Olá "); sb.append(nome); sb.append("!"); System.out.println(sb); } } Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 18
  • 19. Tutoriais do Java  The Java Tutorials  Getting Started  http://java.sun.com/docs/books/tutorial/getStarted/  Learning the Java Language  http://java.sun.com/docs/books/tutorial/java/ Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 19
  • 20. Referências  Caelum: Ensino e Soluções em Java. FJ-11 – Java e Orientação a Objetos. http://www.caelum.com.br/curso/fj-11-java- orientacao-objetos/ Classes Básicas do Java ©2012 Ludimila Monjardim Casagrande 20