Java程序设计基础 课件 第10章 Java常用类介绍_第1页
Java程序设计基础 课件 第10章 Java常用类介绍_第2页
Java程序设计基础 课件 第10章 Java常用类介绍_第3页
Java程序设计基础 课件 第10章 Java常用类介绍_第4页
Java程序设计基础 课件 第10章 Java常用类介绍_第5页
已阅读5页,还剩37页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章Java常用类介绍10.1基本数据包装类10.2System类10.3Random类10.4日期时间类本章小结

10.1基本数据包装类

1.包装类

Java语言源于C语言,因此Java中也保存了类似C语言的基本数据类型,共有八种,即byte、short、int、long、char、boolean、float、double。正是这些基本数据类型,使得Java不是一个单纯的面向对象语言,因为这些基本数据类型定义的是基本数据类型变量,而并不是对象。

如果要让这些基本数据也能像对象一样进行方法调用等面向对象的编程方式,就需要将这些基本数据类型转换为对应的类。Java定义了包装类(WrapperClasses)与这八种基本数据类型对应,它们都位于java.lang包中。这些包装类中可以保存对应的基本数据类型的数据,并可以完成相应的操作,如表10-1所示。

2.装箱与拆箱

(1)装箱:将基本类型数据转换为包装器类型对象。

(2)拆箱:将包装器类型对象转换为基本类型数据。

3.包装类的应用

Java设计的这些包装类中有很多实用的方法,以方便对这些基本数据进行各种处理。下面以Integer为例进行介绍,其它包装类请读者自行查询帮助文档使用。

程序结果:

程序分析:

(1)如果没有Integer包装类,解决这个问题就要像在C语言中一样使用面向过程的分支、循环等语句来完成,需要判断输入的整数是正数还是负数,然后遍历字符串,取出每个字符转换为整数,最后按一定算法拼接成为对应的整数。

(2)有了Integer这个类,只需要调用Integer类的静态方法parseInt即可完成,而且对于正数、负数以及非整数情况都能处理,对于不是整数情况的将抛出异常。

(3)反之,将一个整数转变为对应的整数字符串形式,同样也可以使用Integer的toString方法来完成:

intm=134;

Strings=Integer.toString(m);

(4)类似的其它包装类也有这样的操作,如parseByte(Stringstr)、parseShort(Stringstr)、parseLong(Stringstr)、parseFloat(Stringstr)、parseDouble(Stringstr)等,将字符串形式的数据转换为对应的基本类型数据即可。

10.2System类

1.System的属性(1) publicstaticfinalInputStreamin:标准输入设备(键盘)。(2) publicstaticfinalInputStreamout:标准输出设备(显示器)。(3) publicstaticfinalInputStreamerr:标准错误输出流。

2.System的常用方法

(1) publicstaticvoidexit(intstatus):系统退出,如果status为0就表示退出。

(2) publicstaticvoidgc():运行垃圾收集机制,调用Runtime类中的gc方法。

(3) publicstaticlongcurrentTimeMillis():返回以毫秒为单位的当前时间。

(4) publicstaticlongnanoTime():返回最准确的可用系统计时器的当前值。

(5) publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdesPos,intlength):数组拷贝操作。

(6) publicstaticPropertiesgetProperties():取得当前系统的全部属性。

(7) publicstaticStringgetProperty(Stringkey):根据键值取得属性的具体内容。

3.System类的使用

程序结果

程序结果:

10.3Random类1.Random构造函数JavaAPI中提供了两个构造方法来创建一个Random对象:(1) Random():无参构造函数。(2) Random(longseed):使用long类型参数作为种子的构造函数。无参构造函数底层也是调用了有参构造函数,将System.nanoTime()作为参数传递,即如果使用无参构造,默认的seed值为System.nanoTime(),使用种子产生的伪随机数随机性更好。

2.Random的主要方法

(1) boolean

nextBoolean(): 返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值。

(2) void

nextBytes(byte[]bytes):生成随机字节并将其置于用户提供的byte数组中。

(3) double

nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的double值。

(4) double

nextGaussian():返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯正态分布的double值,其平均值是0.0,标准差是1.0。

(5) int

nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。

(6) int

nextInt(intn):返回一个伪随机数,它是取自此随机数生成器序列的[0,n-1]之间均匀分布的int值。

(7) void

setSeed(longseed):使用单个long种子设置此随机数生成器的种子。

3.Random的使用

一般在程序中产生的随机数主要有两种,一种是一个小数区段的伪随机数;另外一种是一个整数区段的伪随机数。

下面首先创建Random的对象ra(Randomra=newRandom();),然后通过ra调用相应的对象方法来创建伪随机数,例如:

(1)生成[0,10)区间的整数:

intn2=ra.nextInt(10); (左闭右开)

(2)生成[n,m]区间的整数:

ra.nextInt(n-m+1)+m

(3)生成[10,50]区间的整数:

ra.nextInt(41)+10

(4)生成-231到231-1之间的整数:

intn=ra.nextInt();

(5)生成[0,1.0)区间的小数:

doubled1=ra.nextDouble();

(6)生成[0,5.0)区间的小数:

oubled2=ra.nextDouble()*5;

(7)生成[1,2.5)区间的小数:

doubled3=ra.nextDouble()*1.5+1;

程序结果:

10.4日 期 时 间 类

Java对于日期和时间进行处理的类主要有:古老的Date类、处理年月日的日历类Calendar和格式化日期对象SimpleDateFormat类。

10.4.1Date类

Date(java.util.Date)类从jdk1.0就开始被设计出来,Java早期的版本中有关日期和时间的操作几乎都是由Date类完成的,有很多对于时间日期的获取/设置方法,现在这些方法大多不再使用,被Calendar中的方法所替代了。

Date中封装了一个long类型的成员变量“privatetransientlongfastTime;”,这个变量是整个时间日期操作的对象。我们使用该变量代表时间和日期,整数值代表的是距离格林尼治标准时间(1970年1月1日0时0分0秒)所经过的毫秒数,也就是说fastTime值为1000的时候代表时间为1970年1月1日0时0分1秒。

10.4.2Calendar类

Calendar(java.util.Calendar)是处理日期时间的核心类。该类中封装了很多静态常量字段(field),这些日历字段分别用来表示日期时间属性,例如YEAR表示年份,MONTH表示月份,WEEK代表星期几,HOUR表示小时等,并且具有相应的获取/设置这些属性的方法。(注:月份和星期几都是从0开始计数的,0代表1月、星期一。)

Calendar是抽象类,所以不能使用new方式来创建Calendar的对象,而是要使用类方法getInstance()来获取该类的对象,如“CalendarrightNow=Calendar.getInstance();”,对象rightNow中的日历字段由执行该语句时的当前日期和时间进行初始化。日期时间的操作方法主要有两类,一是获取日期时间的日历字段值,如年月日时分秒等;二是设置各个日历字段的值。

程序结果:

程序结果:

10.4.3SimpleDateFormat类

SimpleDateFormat(java.text.SimpleDateFormat)类使用与语言环境有关的方式来格式化和解析日期对象:

(1)格式化:将日期对象按照某种格式转换为对应的字符串文本。

(2)解析:将一个规范的日期形式字符串转换为对应的日期类型对象。

简单来说,就是实现日期时间对象和字符串之间的相互转换,并且该类还允许自定义转换的字符串格式模板。

SimpleDateFormat类继承结构图如图10-1所示。图10-1SimpleDateFormat类继承结构图

SimpleDateFormat类的父类是DateFormat(日期格式化类),该类主要用于实现Date对象和字符串之间的相互转换,主要使用下列两个方法:

(1) publicfinalStringformat(Datedate):将Date类型转换为字符串对象。

(2) publicDateparse(Stringsource):将字符串对象转换为Date类型对象。

DateFormat类对于Date和String的转换是使用固定的字符串模板形式,字符串模板形式如“年-月-日时:分:秒”。下面通过示例程序进行说明。

程序结果:

程序结果:

本章小结1.Java的JDK中有很多实用类,要学会如何查询帮助文档使用它们,并在使用的过程中不断积累这些类,让它们成为编程的强大工具。2.基本类型包装类是专门对基本数据类型进行包装,使这些基本数据类型的数据也能够按照面向对象编程的方式来进行操作。3.Java的八种基本数据类型对应的包装类如下:byte:Byte,short:Short,int:Integer,long:Long,char:Character,boolean:Boolean,float:Float,double:Double。

4.自动装箱语句为“Integeri=10;”,自动拆箱语句为“intn=i;”。

5.System类具有的方法能够获取当前系统的各种属性值、当前系统时间,并能结束程序、对数组进行拷贝等等。

6.Java对于日期时间的操作主要使用三个类,即Date、Calendar、SimpleDateForma

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论