持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
1️⃣前言
大家好,我是翼同学。今天笔记的内容是:
- 包的使用
2️⃣内容
2.1、概述
Java使用 包(package) 将类组织起来,通过包机制可更加方便地组织Java代码,也更高效的管理代码库。
包允许将类组合成较小的单元,类似文件夹,使用包的主要原因是确保类名的唯一性。比如说有两个程序员都编写了名为myStudent类,此时只要将这个类放在不同的包中,就不会产生冲突,这就有效的避免了类名称上的冲突,在更广泛的范围内保护类。
2.2、包的定义
在Java中,我们使用package语句定义包,并且该语句应放在源文件的第一行,有且只有一条包定义语句。
包定义语句的语法如下:
package 包名;
注意,包名也有一定的命名规则。
Sun公司建议将域名以倒置的形式作为包名,并且不同项目使用不同的子包,每个层次用.分割。一个类可以使用所属包中的所有类。
2.3、import语句
类也可以使用其他包中的公有类,方法有两种,一种是在每个类名之前添加完整的包名,另一种方法则是使用import语句导入其他包中的类。这样我们在使用其他类时就不用再写出包的全名。
需要注意,import语句应该置于当前文件的最前面,但位于package语句的后面。
举个例子,下面这个import语句导入了util包下的所有类。
import java.util.*;
当然我们也可以明确写出应导入util包下的哪个类。
比如:
import java.util.Arrays;
这样的import语句使得我们更加准确地知道加载了哪些类。
使用import语句的好处就是便捷,我们可以使用更简短的名字来引用一个类,而不用写出完整的包名。
2.4、包中拥有相同的类
如果包中拥有相同的类时,在import语句中使用通配符*导入类时就会发生命名冲突。
举个例子:
import java.util.*;
import java.sql.*;
我们知道,在util包和sql包下都有Date类,此时我们在当前类中使用Date类后,就会产生编译错误。因为编译器无法确定该使用哪一个Date类。
解决方法是添加一个特定的import语句表示欲导入的类。比如import java.util.Date;或import java.sql.Date;
2.5、静态导入
从Java SE 5.0 开始,import语句还增加了导入静态方法和静态属性的功能。
一旦使用了静态导入,我们就可以使用类中的静态方法,而不用添加类名前缀。
举一个应用场景:
- 对Math类使用静态导入
// 静态导入
import static java.lang.Math.*;
- 此时就能更加直观地使用算术方法,较为清晰。
double result = sqrt(pow(2, 1) + pow(2, 1));
// 而不是这样: Math.sqrt(Math.pow(2, 1) + Math.pow(2, 1))
2.6、系统包
最后记录一些Java开发中的常用系统包。
java.lang:核心类库,包含运行Java程序必不可少的核心系统类,一般系统会默认加载这个包;java.io:标准输入/输出类库;java.util:实用工具包,包含如处理时间的Date等工具类;java.awt:构建图形用户界面(GUI)的类库,包含了构成抽象窗口工具集的多个类;java.net:实现网络功能的类库;包含执行与网络相关的操作的类或接口;java.util.zip:实现文件压缩功能类库;java.sql:实现JDBC的类库,包含了Java进行JDBC数据库编程的相关类/接口;java. security:提供安全性方面的有关支持
3️⃣写在最后
好了,今天的笔记就记到这里。