第十三章 JAVA中必须了解的常用类

来源:互联网 发布:电动汽车环保贡献数据 编辑:程序博客网 时间:2024/06/07 09:30

第一节 JAVA中的包装类

基本数据类型不具备对象的特性,比如基本数据类型不能调用方法,功能简单。为了让基本数据也具有对象的特性,JAVA为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。基本类型和包装类之间的对应关系:

基本类型 byte short int long float double char boolean 包装类 Byte Short Integer Long Float Double Character Boolean

包装类主要提供了两大类方法:
1.将本类型和其他基本类型进行转换的方法;
2.将字符串和本类型及包装类互相转换的方法。
以Integer包装类为例:Integer 包装类的构造方法

如下图中的代码所示

Integer包装类的常用用法:

第二节 JAVA中基本类型和包装类之间的转换

基本类型和包装类之间经常需要相互转换,以Integer为例:

Integer a=new Integer(3);//定义Integer包装类对象值为3int b=a+5;//将对象和基本类型进行运算

在JDK1.5中,引入了自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。那么什么是装箱和拆箱呢?
装箱:是把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱。

int i=10//定义一个基本类型的整型变量i的值为10Integer x=new Integer(i);//手动装箱Integer y=i;//自动装箱

拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱。

Integer j=new Integer(8);//定义一个Integer包装类对象值为8int m=j.intValue();//手动拆箱为int类型int n=j;//自动拆箱为int类型

第三节 JAVA中基本类型和字符串之间的转换

在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。
其中基本类型转换成字符串有三种方法:
1.使用包装类的toString()方法;
2.使用String类的valueOf()方法;
3.用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串。
例如:

//将基本类型转换成字符串int c=10String str1=Integer.toString(c);//方法1 Integer包装类的toString方法,参数cString str2=String.valueOf(c);//方法2 String类的valueOf方法,参数cString str3=c+"";//方法3

将字符串转换成基本类型有两种方法:
1.调用包装类的parseXxx() 静态方法,其中Xxx代表具体类型;
2.调用包装类的valueOf()方法转换为基本类型的包装类,会自动拆箱。

//将字符串转换为基本类型Strng str="8";//定义一个字符串类型的变量 “8”int d=Integer.parseInt(str);//方法一int e=Integer.valueOf(str);//方法二double m = 78.5;String str1=m+"";System.out.println("m转换为String型后与整数20的求和结果为: "+(str1+20));//结果为78.520

其它基本类型与字符串的相互转化基本都类似。

第四节 使用 Date 和 SimpleDateFormat 类表示时间

在程序开发中经常需要处理时间和日期的相关数据,此时我们可以使用java.util包中的Date类。这个类最主要的作用就是获取当前时间,我们来看一下Date类的使用:

Date d=new Date();//使用默认的构造方法来创建Date对象System.out.println(d);//输出Date对象

使用Date的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出Date对象显示当前时间,显示的结果如下:

其中,wed代表Wednesday星期三,jun代表june六月,11 代表 11 号, CST 代表 China Standard Time (中国标准时间,也就是北京时间,东八区)。默认的时间格式不是很友好,那么如何修改成如 2014-06-11 09:22:30呢?此时就要用到java.text包中的SimpleDateFormat类大显身手的时候了。可以使用SimpleDateFormat来对日期时间进行格式化,如可以将日期转换成指定格式的文本,也可以将文本转换为日期。
1.使用format()方法将日期转换为指定格式的文本

//创建Date对象,表示当前时间  Date d=new Date();//创建SimpleDateFormat对象,指定目标格式SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//调用format()方法,格式化时间,转换为指定格式的字符串String today=sdf.format(d);//输出转换后的字符串System.out.println(today);

代码中的”yyyy-MM-dd HH:mm:ss”为预定义字符串,yyyy表示四位年,MM表示两位月份,dd表示两位日期,HH表示小时(使用24小时制),mm表示分钟,ss表示秒。这样就指定了转换的目标格式,最后调用format()方法将时间转换为指定格式的字符串。
2.使用parse()方法将文本转换成日期

//创建日期格式的字符串String day="2014年02月14日 10:30:25";//创建SimpleDateFormat对象,指定字符串的日期格式SimpleDateFormat df=new SimpleDateFormat(yyyy年MM月dd日 HH:mm:ss);//调用parse()方法将字符串转换为日期Date date=df.parse(day);//输出转换后的时间System.out.println("当前时间:"+date);

代码中的 “yyyy年MM月dd日 HH:mm:ss” 指定了字符串的日期格式,调用 parse() 方法将文本转换为日期。
一定要注意:
1.调用SimpleDateFormat对象的parse()方法时可能会出现转换异常,即ParseException,因此需要进行异常处理;
2.使用Date类时需要导入java.util包,使用SimpleDateFormat需要导入java.text包。

第五节 Calendar 类的应用

Date类最主要的作用一般是用来获取当前时间,同时这个类里也具有设置时间等一些其他功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用Calendar类进行时间和日期的处理。java.util.Calendar类是一个抽象类,可以通过调用getInstance()静态方法获取一个Calendar对象,此对象已由当前时间初始化,即默认代表当前时间,如:

Calendar c=Calendar.getInstance();

那么如何使用Calendar来获取年、月、日、时间等信息呢? 来看下面的代码:

Calendar c=Calendar.getInstance();//创建一个Calendar对象int year=c.get(Calendar.YEAR);//获取年int month=c.get(Calendar.MONTH)+1;//获取月,0表示1月int day=c.get(Calendar.DAY_OF_MONTH);//获取日int hour=c.get(Calendar.HOUR_OF_DAY);//获取小时int minute=c.get(Calendar.MINUTE);//获取分钟数int second=c.get(Calendar.SECOND);//获取秒数//输出当前时间System.out.println("当前时间:"+year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second);

其中调用Calendar类的getInstance()方法获取一个实例,然后通过get()方法获取日期时间信息,参数为需要获得的字段的值,Calendar.YEAR 等为Calendar类中定义的静态常量。Calendar类提供了getTime()方法,用来获取Date对象(转换成Date对象),完成Calendar和Date的转换,还可以通过get.TimeInMillis()方法,获取此Calendar的时间值,以毫秒为单位,如下所示:

Date date=c.getTime();//将Calendar对象转换为Date对象Long time=c.get.TimeInMillis();//获取当前毫秒数System.out.println("当前时间:"+date);System.out.println("当前毫秒数:"+time);

第六节 使用 Math 类操作数据

Math类位于java.lang包中,包含用于执行基本数学运算的方法,Math类的所有方法都是静态方法,所以使用该类中的方法,可以直接使用类名.方法名。如:Math.round();
常用的方法:

通过案例我们来认识一下他们的使用吧:

double a=12.81; //定义一个double类型变量int b=(int) a; //将double类型强制换换为int类型,去掉小数位long c=Math.round(a); //调用round方法,进行四舍五入double d=Math.floor(a); //调用floor方法,返回小于参数的最大整数double e=Math.ceil(a); //调用ceil方法,返回大于参数的最小整数double x=Math.random(); //调用random方法,产生[0,1)之间的随机数浮点数int y=(int)(Math.random()*99); //产生[0,99)之间的随机整数。
1 0