找回密码
 免费注册

QQ登录

只需一步,快速开始

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
方法
所有包装类都是不可变的。它们提供了两种方法来创建它们的对象:
1  使用构造函数
2   使用valueOf()工厂方法
除了Character之外,每个包装类都提供至少两个构造函数:一个采用对应基本类型的值,另一个采用String。
Character类只提供一个接受char的构造函数。

例子
以下代码创建一些包装类的对象:
  1. public class Main {
  2.   public static void staticMethod() {
  3.     // Creates an Integer object from an int
  4.     Integer intObj1 = new Integer(100);

  5.     // Creates an Integer object from a String
  6.     Integer intObj2 = new Integer("1969");

  7.     // Creates a Double object from a double
  8.     Double doubleObj1 = new Double(10.45);

  9.     // Creates a Double object from a String
  10.     Double doubleObj2 = new Double("234.60");

  11.     // Creates a Character object from a char
  12.     Character charObj1 = new Character("A");

  13.     // Creates a Boolean object from a boolean
  14.     Boolean booleanObj1 = new Boolean(true);

  15.     // Creates Boolean objects from Strings
  16.     Boolean booleanTrue = new Boolean("true");
  17.     Boolean booleanFalse = new Boolean("false");
  18.   }
  19. }
复制代码
valueOf()
创建包装类对象的另一种方法是使用它们的valueOf()方法。
valueOf()方法是静态的。
下面的代码使用它们的valueOf()方法创建一些包装器类的对象:
  1. public class Main {
  2.   public static void staticMethod() {
  3.     Integer  intObj1 = Integer.valueOf(100);
  4.     Integer  intObj2 = Integer.valueOf("2014");
  5.     Double  doubleObj1  = Double.valueOf(10.45);
  6.     Double  doubleObj2  = Double.valueOf("234.56");
  7.     Character charObj1   = Character.valueOf("A");
  8.   }
  9. }
复制代码
Java 数字数据类型列入:
  1. public class Main {
  2.   public static void main(String[] args) {
  3.     Integer intObj = Integer.valueOf(100);

  4.     // Gets byte from Integer
  5.     byte b = intObj.byteValue();

  6.     // Gets double from Integer
  7.     double dd = intObj.doubleValue();
  8.     System.out.println("intObj = " + intObj);
  9.     System.out.println("byte from  intObj = " + b);
  10.     System.out.println("double from  intObj = " + dd);

  11.     // Creates a Double object
  12.     Double doubleObj = Double.valueOf("123.45");

  13.     // Gets different types of primitive values from Double
  14.     double d = doubleObj.doubleValue();
  15.     float f = doubleObj.floatValue();
  16.     int i = doubleObj.intValue();
  17.     long l = doubleObj.longValue();

  18.     System.out.println("doubleObj = " + doubleObj);
  19.     System.out.println("double from  doubleObj   = " + d);
  20.     System.out.println("float from  doubleObj   = " + f);
  21.     System.out.println("int from  doubleObj   = " + i);
  22.     System.out.println("long from  doubleObj   = " + l);
  23.   }
  24. }
复制代码


以下代码将包含二进制格式的整数的字符串转换为Integer对象和int值:
  1. public class Main {
  2.   public static void main(String[] args) {
  3.     String str = "01111111";
  4.     int radix = 2;

  5.     // Creates an Integer object from the string
  6.     Integer intObject = Integer.valueOf(str, radix);

  7.     // Extracts the int value from the string
  8.     int intValue = Integer.parseInt(str, 2);

  9.     System.out.println("str = " + str);
  10.     System.out.println("intObject = " + intObject);
  11.     System.out.println("intValue = " + intValue);

  12.   }
  13. }
复制代码
所有数值包装类都包含几个有用的常量。它们的MIN_VALUE和MAX_VALUE个常数表示最小值和最大值。它们还具有SIZE常数,其表示对应原始类型的变量占据的位的大小。
以下代码尝试将两个字符串解析为双精度值。
第一个字符串包含有效的double,第二个字符串包含无效的double。当调用parseDouble()方法来解析第二个字符串时,抛出NumberFormatException。
  1. public class Main {
  2.   public static void main(String[] args) {
  3.     String str1 = "123.45";
  4.     try {
  5.       double value1 = Double.parseDouble(str1);
  6.       System.out.println("value1 = " + value1);
  7.     } catch (NumberFormatException e) {
  8.       System.out.println("Error in parsing " + str1);
  9.     }

  10.     String str2 = "8H.9"; // An invalid double
  11.     try {
  12.       double value2 = Double.parseDouble(str2);
  13.       System.out.println("value2 = " + value2);
  14.     } catch (NumberFormatException e) {
  15.       System.out.println("Error in parsing " + str2);
  16.     }

  17.   }
  18. }
复制代码





收藏

0 个回复

您需要登录后才可以回帖 登录 | 免费注册