www.tiexpert.net                                                                      Pág. 1 de 3Classes NuméricasEstamos ...
www.tiexpert.net                                                                      Pág. 2 de 3                     " - ...
www.tiexpert.net                                                                             Pág. 3 de 3public class Parse...
Próximos SlideShares
Carregando em…5
×

Classe integer-float-byte-short-long-double

299 visualizações

Publicada em

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Classe integer-float-byte-short-long-double

  1. 1. www.tiexpert.net Pág. 1 de 3Classes NuméricasEstamos seguindo para, em breve, entrarmos nos tutoriais de programação usando SWING eAWT, resumidamente, janelas. Mas antes, veremos classes que se tornarão de extremaimportância para o uso da manipulação dos dados. Essas classes são as que tem por base aclasse abstrata Numbers e a classe String.Em Java, além de podermos utilizar os tipos primitivos de dados, também podemos usufruirde classes completas para o tratamento desses tipos primitivos. Isso é uma grande vantagemquando métodos necessitam ou retornam objetos ao invés de tipos primitivos (o que é muitocomum com os objetos do pacote SWING e AWT).Outra vantagem dessas classes é que o próprio compilador é capaz de extrair os dados doobjeto implicitamente e manipular seus dados como sendo simples dados primitivos, numprocesso descrito como box e unbox (encaixotar e desencaixotar).Por exemplo, se quisermos somar dois inteiros que estão dentro de dois objetos inteiros, nãoprecisaríamos fazer nada de especial, a não ser somá-los de fato, como se fossem dadosprimitivos. Veja:public class SomarIntegers { public static void main(String[] args) { Integer var1 = 25; Integer var2 = 75; int resultado = var1 + var2; // somando dois objetos System.out.println(resultado); }}A princípio, a classe abstrata Number nos proporciona um conjunto de métodos que,logicamente, são possíveis acessar de qualquer classe numérica.Obter Tipo Primitivo de um Objeto NuméricoPodemos utilizar os métodos *Value para obter um tipo primitivo de qualquer objeto numérico. • byteValue(): Obtém um valor primitivo byte. • shortValue(): Obtém um valor primitivo short (inteiro curto). • intValue(): Obtém um valor primitivo int (inteiro). • longValue(): Obtém um valor primitivo long (inteiro longo). • floatValue(): Obtém um valor primitivo float. • doubleValue(): Obtém um valor primitivo double.Esses métodos são ótimos para passar de um tipo de dado para o outro sem nospreocuparmos com indução de tipo ou typecasting, pois a mudança é feita diretamente peloobjeto.public class ConverterNumeros { public static void main(String[] args) { Byte meuByte = 5; Integer meuInt = 12345; Double meuDouble = 1234567.89; byte doubleParaByte = meuDouble.byteValue(); int byteParaInteiro = meuByte.intValue(); double inteiroParaDouble = meuInt.doubleValue(); System.out.println("Byte: " + meuByte + " - para int: " + byteParaInteiro + "nInteger: " + meuInt + " - para double: " + inteiroParaDouble + "nDouble: " + meuDouble +http://www.tiexpert.net/programacao/java/classe-integer-float-byte-short-long-double.php
  2. 2. www.tiexpert.net Pág. 2 de 3 " - para byte: " + doubleParaByte); }}Comparar NúmerosPara comparação de números, há dois métodos: compareTo() e equals().O método compareTo() compara o objeto com um outro objeto da mesma classe ou númerode tipo primitivo do mesmo tipo. Ele retorna 0 se o número comparado for igual, -1 se onúmero for menor ou 1 se o número for maior.Equals() funciona de forma semelhante. Ele indica se o número comparado é igual aoargumento deste método, porém não diz se o argumento é maior ou menor que o valor doobjeto. Outra diferença fica por conta de seu retorno que é um valor booleano (true ou false).Classes Integer, Float, Short, Byte, Long e DoubleAgora que temos a base de todas as classes numéricas, iremos para a descrição dos métodoscontidos nessas classes, que apesar de diferentes, mantem uma similaridade muito grande.Análise de DadosA análise de dados consiste em tentar usar uma String que possa ser interpretada como talobjeto numérico usando o comando parse*. Caso a String não possa ser interpretada comoum número, uma exceção (erro) é lançada. • Byte.parseByte(): analisa uma String para tenta atribuir um dado do tipo primitivo byte. • Short.parseShort(): analisa uma String para tenta atribuir um dado do tipo primitivo short. • Integer.parseInt(): analisa uma String para tenta atribuir um dado do tipo primitivo inteiro. • Long.parseLong(): analisa uma String para tenta atribuir um dado do tipo inteiro primitivo longo. • Float.parseFloat(): analisa uma String para tenta atribuir um dado do tipo primitivo float. • Double.parseDouble(): analisa uma String para tenta atribuir um dado do tipo primitivo double.Se quisermos que, ao invés de um tipo primitivo de número, seja retornado um objeto,podemos trocar qualquer parse* por valueOf().Em tipos inteiros, além de valueOf(), também podemos trocar parseInt, parseByte, parseShorte parseLong por decode().Importante: As classes que se baseiam em números inteiros (Byte, Short, Long e Integer)possuem um segundo argumento do tipo inteiro opcional nos métodos parse* que indica abase do número inteiro, fazendo com que dessa forma possa ser interpretado númerosDecimais (base 10), Binários (base 2), Octais (base 8) e Hexadecimais (base 16).Decode também pode fazer este tipo de interpretação, mas não é necessário um segundoargumento desde que a String respeite algumas convenções: • Não são aceitos espaços; • Não são aceitos números negativos; • Números octais devem começar com um 0 (ex.: "0377", "0400", "0401"); • Números hexadecimais devem começar com 0x, 0X ou # (ex.: "0xFF", "0X100", "#101").http://www.tiexpert.net/programacao/java/classe-integer-float-byte-short-long-double.php
  3. 3. www.tiexpert.net Pág. 3 de 3public class ParseEDecode { public static void main(String[] args) { String numero = "256"; // retorna um dado do tipo int (inteiro) int tipoInteiro = Integer.parseInt(numero); // retorna um objeto da classe Integer (inteiro) Integer objetoInteiro = Integer.decode(numero); System.out.println("tipoInteiro: " + tipoInteiro + "nobjetoInteiro: " + objetoInteiro); }}Conversão Para StringPara converter qualquer objeto numérico para uma String podemos fazer uso de toString()como qualquer outra classe. Autor: Denys William Xavier Fonte: http://java.sun.com/docs/books/tutorial/java/data/numberclasses.html Este artigo está sob Licença Creative Commons Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/ ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.http://www.tiexpert.net/programacao/java/classe-integer-float-byte-short-long-double.php

×