9.1 包装类
为了方便 Java 程序的开发,Java 的类包中提供了一些常用类供开发人员使用,比如将基本数据类型封装起来的包装类、解决常见数学问题的 Math 类、生成随机数的 Random 类,以及处理日期时间的相关类,本章将对这些 Java 中常用的类进行讲解。
通过阅读本章,您可以:
掌握 Integer 对象的创建以及Integer类提供的各种方法
掌握 Double 对象的创建以及 Double 类提供的各种方法
掌握Boolean 对象的创建以及Boolean类提供的各种方法
掌握 Character 对象的创建以及 Character 类提供的各种方法
了解所有数字类的父类 Number
掌握Math类中的各种数学运算方法
掌握如何在程序中生成任意范围内的随机数
熟悉日期时间类的使用方法
9.1.1 Integer 类
java.lang 包中的 Integer 类、Byte类、Short 类和Long类,分别将基本数据类型int、byte、short 和long 封装成一个类,由于这些类都是Number 的子类,区别就是封装不同的数据类型,其包含的方法基本相同,所以本节以 Integer 类为例介绍数包类。
Integer类在对象中包装了一个基本数据类型 int 的值,该类的对象包含一个int类型的字段, 此外,该类提供了多个方法,能在int 类型和String类型之间互相转换,同时还提供了其他一些处理 int类型时非常有用的常量和方法。
例9.1
public class Dijiuzhang {//创建类
public static void main(String[] args) {//主函数
int num = Integer.parseInt("456");// 将字符串转换为int类型
Integer iNum = Integer.valueOf("456");// 通过构造函数创建一个Integer对象
System.out.println("int数据与Integer对象的比较:" + iNum.equals(num));//输出"int数据与Integer对象的比较:" + iNum.equals(num)
String str2 = Integer.toBinaryString(num);// 获取数字的二进制表示
String str3 = Integer.toHexString(num);// 获取数字的十六进制表示
String str4 = Integer.toOctalString(num);// 获取数字的八进制表示
String str5 = Integer.toString(num, 15);// 获取数字的十五进制表示
System.out.println("456的二进制表示为:" + str2);//输出"456的二进制表示为:" + str2
System.out.println("456的十六进制表示为:" + str3);//输出456的十六进制表示为:" + str3
System.out.println("456的八进制表示为:" + str4);//输出"456的八进制表示为:" + str4
System.out.println("456的十五进制表示为:" + str5);//输出"456的十五进制表示为:" + str5
System.out.println("圆周率π的值为:" + Math.PI);//输出"圆周率π的值为:" + Math.PI
System.out.println("自然对数底数e的值为:" + Math.E);//输出"自然对数底数e的值为:" + Math.E
}
}
例9.2
public class Dijiuzhang {//创建类
public static void main(String args[]) { // 主方法
int maxint = Integer.MAX_VALUE; // 获取Integer类的常量值
int minint = Integer.MIN_VALUE;// 获取Integer类的常量值
int intsize = Integer.SIZE;// 获取Integer类的常量值
System.out.println("int类型可取的最大值是:" + maxint); //输出"int类型可取的最大值是:" + maxint
System.out.println("int类型可取的最小值是:" + minint);//输出"int类型可取的最小值是:" + minint
System.out.println("int类型的二进制位数是:" + intsize);//输出"int类型的二进制位数是:" + intsize
}
}
9.1.2 Double 类
Double 类和 Float 类是对double、float 基本类型的封装,它们都是 Number 类的子类,都是小数进行操作,所以常用方法基本相同,本节将对 Double 类进行介绍。对于Float 类可以参考Double类的相关介绍。
Double 类在对象中包装一个基本类型为 double 的值,每个Double类的对象都包含一个 double类型的字段。此外,该类还提供多个方法,可以将 double 转换为 String,将 String 转换为 double,也提供了其他一些处理 double 时有用的常量和方法。
例9.3
public class Dijiuzhang {//创建类
public static void main(String[] args) {//主函数
Double dNum = Double.valueOf("3.14"); // 通过构造函数创建一个Integer对象
System.out.println("3.14是否为非数字值:" + Double.isNaN(dNum.doubleValue()));// 判断是否为非数字值
System.out.println("3.14转换为int值为:" + dNum.intValue());// 转换为int类型
System.out.println("值为3.14的Double对象与3.14的比较结果:" + dNum.equals(3.14));// 判断大小
System.out.println("3.14的十六进制表示为:" + Double.toHexString(dNum));// 转换为十六进制
}
}
9.