Java SE应用程序设计
第九章 精通
常用的Java类
张利国 中科院新科海 v512
工作室
jobedu
新科海
本章
学习目标
1 2 3 4 5 java.lang.Object类 字符串相关类型 封装类 日期/时间相关类型 数学相关类型
Java SE应用程序设计
jobedu
2
新科海
Java SE应用程序设计
Object类
java.lang.Object类是所有Java类的最高层次父类,该类 提供了面向对象编程技术的基本机制。 重要方法
列表:
hashCode()方法 toString()方法 equals()方法 finalize()方法 clone()方法 wait()方法 notify()/notifyAll()方法
jobedu
3
新科海
Java SE应用程序设计
hashCode()方法
public class Person{ private int age; public Person(int age){ this.age = age; } //… } public class TestHashCode{ public static void main(String[] args){ Person p1 = new Person(18); Person p2 = new Person(18); int handle1 = p1.hashCode(); System.out.println(handle1); System.out.println(Integer.toHexString(handle1)); System.out.println(p1); System.out.println("----------------"); System.out.println(p2.hashCode()); } } jobedu
输出结果: 11077203 a90653 Person@a90653 ---------------14576877
4
新科海
Java SE应用程序设计
toString()方法
方法格式: public String toString() { … } 方法功能:以字符串形式返回当前对象的有关信息,在 Object类的原始定义中,所返回的是对象所属的类型名称 及其哈希码。 当使用System.out.println()方法直接打印输出引用类型变量 时,println()方法中会先自动调用其toString()方法,再将所 返回的字符串信息输出。 在进行String与其它类型数据的连接操作时,自动调用 toString()方法,基本类型数据转换为String类型时,调用 了对应封装类的toString()方法。 可以根据需要在用户定义类型中重写toString()方法。
jobedu
5
新科海
重写toString()方法
Java SE应用程序设计
public class Person{ private int age; public Person(int age){ this.age = age; } public void setAge(int age){ this.age = age; } public int getAge(){ return age; } public String toString(){ return "This is an instance of Person,age = " + age; } } public class TestOverride{ public static void main(String[] args){ Person p1 = new Person(18); System.out.println(p1.hashCode()); System.out.println(p1); //等价于 System.out.println(p1.toString()); } }
输出结果: 11077203 This is an instance of Person,age = 18 This is an instance of Person,age = 18
6
jobedu
新科海
Java SE应用程序设计
equals()方法
方法格式:
public boolean equals(Object obj) {… }
功能:比较引用类型数据的等价性 等价标准:引用类型比较引用,基本类型比较值。 equals()方法与==操作符的区别: equals()方法只能比较引用类型数据,而"=="可以比较 引用类型及
基本类型数据; equals()方法存在特例:对File(第10.4.1节)、String、 Date(第9.4.1节)及封装类(第9.3节)等类型来说,是比较 类型及对象的内容而不考虑引用的是否为同一实例。 可以根据需要,在用户定义类中重写其equals()方法, 以改变其等价性评价标准。
jobedu
7
新科海
使用equals()方法
例9-3: Person.java TestEquals.java 例9-4: TestEquals2.java
Java SE应用程序设计
对比使用"=="和equals()方法
重写equals()方法,实现用户定制等价性标准
例9-5 Person.java TestEquals3.java
jobedu
8
新科海
Java SE应用
程序设计 finalize()方法
方法格式:
protected void finalize() throws Throwable {…}
方法功能:Java运行时环境中的垃圾收集器在销毁一 个对象之前,会自动调用该对象的finalize()方法,然 后才释放对象的内存空间。 方法用途:是在子类中重写,以加入所需的逻辑代码 来配置
系统资源或执行其他