【Java精品源码栏目提醒】:本文主要为网学会员提供“第7章_工具类及常用算法 - 大学课件”,希望对需要第7章_工具类及常用算法 - 大学课件网友有所帮助,学习一下!
Java程序设计第7章 工具类及常用算法
Java基础类库 JDK中提供的基础类库又称为JFCjava Foundation Class Library其中包含很多包,每个包中都有若干特定功能和 相互关系的类和接口。
一些经常使用的包为:
java.lang包 //默认加载的包
java.io包
java.util包
java.awt包
java.applet包
java.net包 ……
Java语言基础类
java.lang 这个包包含了运行程序不可少的类,包括基本数 据类,基本数学类,字符串处理,异常处理等 等。
该包在程序时自动引入。
java.io 标准的输入输出类库,包含程序与系统,用户以 及其他程序做的数据交换使用的类,包括基本 I/O,文件I/O等。
完成与操作系统有关的 I/O操作需要用到该包。
Java语言基础类
java.util 包括一些实用工具,如Date类,Vector类, Stack类等。
使用它们可以方便编程。
java.awt 图形用户界面GUI类库。
包括许多界面和资 源,如Graphics类,Container类等等。
可以利 用该包编写标准化的应用程序界面。
java.applet 用来实现运行于浏览器中的
Java Applet的工具类 库,常用的类是
java.applet.Applet。
Java语言基础类 其他包 还有一些其他的包,如
java.rmi是实现远过程调用 功能,可以在远程机器上创建对象,在本地机器 上使用;
java.sql包是实现JDBC的类库。
利用这 个包可以是程序访问不同类型的数据库。
只要安 装了对应的驱动程序,同一个程序就可以访问不 同的数据库。
如果想要详细了解这些系统的类库,可以参考 JDK的文档。
Java语言基础类 Object类 Object类是所有类的直接或间接父类,也是类库当中 所有类的父类,可以和任意类型的对象匹配。
所以可 以用它作为形参的类型,那么不论何种类型的实际参 数都可以与这个形参匹配,从而扩大了方法得适用范 围。
常用得方法: protected Object clone //生成当前对象得备份 public boolean equalsObject obj //比较两个对象 public String toString//返回当前对象得相关信息
Java语言基础类 equals方法 该方法用来比较两个对象是否相同,相同返回 true否则返回false。
如果一个类没有覆盖equals方法,那么这时候 的相等是指两个引用相等,也就是说他们引用 的是同一个对象。
Java语言基础类 equals方法 运算符== 关系运算符生成的是一个“布尔”结果。
它评价的是运算对 象值之间的关系。
运算符==适用于所有对象,但它的 含义通常会使人找不到北。
(见例子) 一般人都会认为输出结果肯定先是true,再是false,因为 两个Integer对象都是相同的。
但尽管对象的内容相同, 句柄却是不同的,而比较的正好就是对象句柄。
所以 输出结果实际上先是false,再是true。
Java语言基础类 equals方法 若想对比两个对象的实际内容是否相同,又该如何操作 呢?此时,必须使用所有对象都适用的特殊方法 equals。
(例子) 正如我们预计的那样,此时得到的结果是true。
但事情并未到此结束!假设您创建了自己的类,就象下面 这样举例 此时的结果又变回了false!这是由于equals的默认行为 是比较句柄。
所以除非在自己的新类中改变了equals, 否则不可能表现出我们希望的行为。
大多数
Java类库都 实现了equals,所以它实际比较的是对象的内容,而 非它们的句柄。
Java语言基础类 equals方法 总结的来讲,也就是说: equals默认的是比较句柄,因为JDK中的许多 类在实现的时候都覆盖了equals方法,所以一 般使用
java类库中的equals时,比较的是对象的 内容; 但是,如果用户自己定义一个类,又没有改写 equals方法,那么它比较的是句柄,除非用户 自己写equals方法来使得它的功能为比较对象 的内容。
Java语言基础类 toString toString方法用来返回对象的字符串表示, 可以用来显示一个对象。
System.out.println方法如果带的参数是一 个对象的话,那么它会自动调用对象的 toString方法,那么它显示的将是“类名内存地 址”。
在自定的类中一般来讲覆盖toString方法。
(举例 2个)
Java语言基础类 基本数据类型包装类
java中提供了基本数据类型的包装类,以于面向对 象的思想一致。
对应的也有8种: CharacterByteShortIntegerLongFloat DoubleBoolean。
他们都是作为类来使用。
1、提供一些常数方便使用, Integer.MAX_VALUEDouble.NaN等。
2、提供valueOfStringtoString 3、通过xxxValue得到所包装的值 4、对toStringequals等方法进行覆盖 举例例7-4 class DoubleString public static void mainString args double d String s //double转换成String的几种方法 d3.1415926 sd sDouble.toStringd snew Doubled.toString sString.valueOfd //string转换成double的几种方法 s3.1414926 try dDouble.parseDoubles dnew Doubles.doubleValue dDouble.valueOfs.doubleValue catchNumberFormatException e e.printStackTrace 补充:装包与拆包 JDK1.5之前,基本数据类型和包装类不能对等使 用。
Integer inew Integer3 装包 int ivi. intValue 拆包 JDK1.5之后,可以自动的进行装包和拆包:自动 装包是指基本类型自动转化为包装类型,自动拆 包指包装类自动转化为基本类型。
Integer i3 int ivIJava语言基础类 Math类该类提供了一些不同标准的数学函数的方法,这些都是static方法,所以使用的时候不用创建Math类的对象,可以直接通过类名来调用这些方法:Math.所要用的方法。
方便编程。
关于具体的方法和属性,可以查询JDK的帮助文档。
举例例7-5 class TestMath public static void mainString args int a3 double b1.5c32.2 double f0.0 f1.0/2aMath.sqrtbMath.sinc System.out.printlnff System.out.printlnMath.ceil3.1415Math.ceil3.1415 System.out.printlnMath.floor3.1415Math.floor3.1415 System.out.printlnMath.round987.654Math.round987.654 System.out.printlnMath.max-987.654301Math.max- 987.654301 System.out.printlnMath.PIMath.PI
Java语言基础类 System类该类是一个非常有用的特殊类,提供了标准输入/输出、运行时系统信息等工具。
由于该类的一些属性和方法这些都是static的,所以使用的时候不能创建System类的对象,可以直接通过类名来调用这些方法:System.所要用的方 法。
Java语言基础类 用system类获得标准输入输出 public static InputStream in public static PrintStream out public static PrintStream err 使用这些可以从标准输入读入数据或向标准输出输 出数据。
用system类的方法获得系统信息 system类提供一些与运行时系统交互的方法,可以利用它 们获得解释器或系统的信息,也可以向运行系统发出指 令。
public static long current TimeMillis public static void exitint status 示例7-6 主要用来测试System类的基本属性及功能/ import
java.util. class TestSystem public static void mainString args Properties a Enumeration ps Iterator pi a System.getProperties a.setPropertytest_path2 //System.setPropertiesa System.out.printlnSystem.getPropertytest_path System.out.printlnSystem.getPropertyjava.version / pia.entrySet.iterator whilepi.hasNext System.out.printlnpi.next / psa.propertyNames whileps.hasMoreElements Object objps.nextElement Object objVala.getobj System.out.printlnobjobjVal 字符数组与字符串 字符串是字符的序列,它是组织字符的基本数据结 构,从某种程度上来说有些类似于字符的数组。
char country‘C’’h’’i’’n’’a’ C 在
Java中,字符串被当作对象来处理。
程序中需要用到的字符串可以分为两大类,一类是创建之后不会再做修改和变动的String类;另一类是创建之后允许再做更改和变化的StringBuffer类。
Java会自动为字符串常量生成一个String类的对象,所以可以直接初始化String对象,如: String s “SCEMI XMJ”