概述
包就是文件夹
包在文件系统中是以文件夹的形式存在的
作用
- 把功能相似的或者相关或接口组织在用一个文件夹中,方便类的查找和使用
- com.demo.login
- com.demo.register
- 减少类的命名冲突
定义格式
使用公司域名反写,多级包全部小写,用“.”链接
比如:demo.com ==> com.demo.login
package 包名1.包名2...
注意事项
定义包的语言必须是类中的第一行有效语句
使用方式
- 直接访问:
- 当使用在类java.lang包下或同一个包下时,可以直接通过类名访问。
- 导包访问:
-
导包格式1:import 包名1.包名2…类名;
-
导包格式2:import 包名1.包名2…*;
-
将制定包下的所有类一起导入
// import java.util.ArrayList; // import java.util.Date; // * 是通配符 import java.util.*;
-
类全名访问
- 不同包下有相同的类名时,如果要在同一个文件中使用不同包下相同的类时,只能有一个类被导包
- 另一个类只能使用类全名访问。
- 包名+类名访问
com.demo.statci.Student s1 = new com.demo.statici.Student();
静态导入
import语句不仅可以导入类,还增加了导入静态方法和静态域的功能。
例如:如果在源文件的顶部,添加一条指令:
import static java.lang.Systen.*;
就可以使用 System类的静态方法和静态域,而不必加类名前缀
out.printIn("Goodbye, World!"): // i.e., System,out
exit(O); // i.e., Systen.exit
另外,还可以导入特定的方法或域:
import static java.lang.System.out;
实际上,是否有更多的程序员采用 System. out或 System.exit的简写形式,似乎是一件值
得怀疑的事情。这种编写形式不利于代码的清晰度。不过
sqrt(pow(x, 2)+ pow(y, 2));
看起来比
Math.sqrt(Math.pow(x, 2)+ Math.pow(y, 2);
清晰得多