3.4.1 Object类
Java提供了一个Object类,它是所有类的父类,每个类都直接或间接继承Object类,因此Object类通常被称之为超类。当定义一个类时,如果没有使用extends关键字为这个类显式地指定父类,那么该类会默认继承Object类。
Object类常用方法:
- boolean equals(),判断两个对象是否“相等”
- int hashCode(),返回对象的哈希码值
- String toString(),返回对象的字符串表示形式
在实际开发中,通常希望对象的toString()方法返回的不仅仅是基本信息,而是对象特有的信息,这时可以重写Object类的toString()方法。
3.4.2 包
为了便于对硬盘上的文件进行管理,通常会将文件分目录存放。同理,在程序开发中,也需要将编写的类在项目中分目录存放,以便于文件管理。为此,Java引入了包(package)机制,程序可以通过声明包的方式对Java类分目录管理。
包通过package关键字声明,示例代码如下:
package com.entity.pt01; // 使用package关键字声明包
public class Example01{
…
}
需要注意的是,包的声明只能位于Java源文件的第一行。
包的作用:
- 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
- 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
- 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
在开发时,一个项目中可能会使用很多包,当一个包中的类需要调用另一个包中的类时,需要使用import关键字引入需要的类。使用import关键字可以在程序中导入某个指定包下的类,这样就不必在每次用到该类时都书写完整类名,简化了代码量。使用import关键字导入某个包中的类的具体格式如下所示:
import 包名.类名;
import通常出现在package语句之后,类定义之前。如果需要用到一个包中的多个类,则可以使用“import 包名.*; ”导入该包下所有类。
例:
package com.entity.pt01;
import java.util.*; //导入java.util包下所有类
import com.entity.pt02.Test; //导入com.entity.pt02包下的Test类
public class Example01{
…
}
在JDK中,不同功能的类都放在不同的包中,其中Java的核心类主要放在java包及其子包下,Java扩展的大部分类都放在javax包及其子包下。
Java语言中的常用包。
- java.util:包含Java中大量工具类、集合类等,如Arrays、List、Set等。
- java.net:包含Java网络编程相关的类和接口。
- java.io:包含了Java输入、输出有关的类和接口。
- java.awt:包含用于构建图形界面(GUI)的相关类和接口。
注意:java.lang包中的类,不需要import就可以使用,比如System类