SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Sequelize
SequelizeSequelize
Sequelize
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
Java Collections
Java  Collections Java  Collections
Java Collections
 
Introduction to jQuery
Introduction to jQueryIntroduction to jQuery
Introduction to jQuery
 
Java 8 Lambda Expressions
Java 8 Lambda ExpressionsJava 8 Lambda Expressions
Java 8 Lambda Expressions
 
Spring annotation
Spring annotationSpring annotation
Spring annotation
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/Servlet
 
Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)
 
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
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Spring framework aop
Spring framework aopSpring framework aop
Spring framework aop
 
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
 
Java 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional InterfacesJava 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional Interfaces
 
Rxjs ngvikings
Rxjs ngvikingsRxjs ngvikings
Rxjs ngvikings
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo Lógico
 
Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
 
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
 

Andere mochten auch

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
Ludimila Monjardim Casagrande
 
Manipulação de Datas em Java
Manipulação de Datas em JavaManipulação de Datas em Java
Manipulação de Datas em Java
Sidney Roberto
 
Estrutura de Programas
Estrutura de ProgramasEstrutura de Programas
Estrutura de Programas
Sidney Roberto
 
Exercicio classes
Exercicio classesExercicio classes
Exercicio classes
feiosanelma
 
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 projetos
Roberto Ferreira
 

Andere mochten auch (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
 

Ähnlich wie 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 ee
elliando dias
 
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
Maurício Linhares
 
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
 

Ähnlich wie 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
 

Mehr von Ludimila Monjardim Casagrande (13)

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 - 20 - Wrapper Classes
POO - 20 - Wrapper ClassesPOO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
 
POO - 19 - Elementos Estáticos
POO - 19 - Elementos EstáticosPOO - 19 - Elementos Estáticos
POO - 19 - Elementos Estáticos
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
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 - 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
 

Kürzlich hochgeladen

Kürzlich hochgeladen (8)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

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