Java基础教程(13)--包

  为了使类型更易于查找,避免命名冲突和访问控制,咱们应该使用包来对本身定义的类型进行管理。这里说的类型能够是类、接口、枚举和注解(枚举和注解的内容会在后续教程中介绍)。使用包来管理咱们的代码,有如下几个目的:java

  • 便于查找:将类似或相关的类型放在同一个包下,项目总体的结构更加清晰,同时也有助于本身和其余人在使用时能够轻松地找到对应的类型。
  • 避免命名冲突:若是本身代码中的类型与其余已经存在的类型同名,使用包来建立新的命名空间能够避免命名冲突。
  • 访问控制:对于使用public修饰的类型来讲,在本包或其余包中均可以使用这个类型;对于没有使用访问修饰符的类型来讲,则只能在本包中进行访问,其余包中的类型则没法访问。

1.包的命名规则

  包的命名知足如下规则:spa

  1. 包名建议所有小写,以免与类或接口的名称冲突;
  2. 父包和子包之间使用点(.)隔开;
  3. 建议将公司的互联网域名以逆序的形式做为包名,例如某公司的域名为example.xyz,则mypackage包的命名为xyz.example.mypackage;

2.将类型放入包中

  要想将一个类型放进包中,首先须要在源文件中使用package语句。package语句的语法是package关键字后面跟上这个类型所在的包。这条语句要放在源文件的开头,例如:code

package xyz.example.mypackage;

public class Demo {
    ...
}

  若是没有在源文件中添加package语句,这个类型就被放在一个默认包中。通常来讲,不推荐使用默认包,建议将每个本身定义的类型都放在对应的包中。   将一个类型放进包中不但要在源文件中使用package语句,还要将源文件放在与包名匹配的目录中。例如,xyz.example.mypackage包中的源文件应该被放置在目录xyz/example/mypackage中。教程

3.使用包中的类型

(1)使用完整的包名   在要使用的类型前加上完整的包名,就能够在程序中使用这个类型了,例如:接口

java.util.List<String> list = new java.util.ArrayList<>();

(2)导入类型   在每一个类型前使用完整的包名显然很繁琐,更经常使用的方式是使用import语句。在import关键字后面跟上具体类型的完整路径便可将该类型导入当前源文件。例如,上面的例子能够写成:域名

import java.util.List;
import java.util.ArrayList;
...
List<String> list = new ArrayList<>();

(3)导入整个包   还可使用import导入某个包下全部的类型。就像下面这样:class

import java.util.*;

  须要注意的是,*表明该包下全部的类型,但不包括子包。若是要导入子包或子包中的类型,则须要另外的import语句。 (4)静态导入   import语句不只能够导入类型,还能够导入静态方法和静态域。例如,若是在源文件的顶部添加一条语句:import

import static java.lang.System.out;

就可使用System类的静态方法和域,而没必要加类名前缀:List

out.println("Hello, World!");
相关文章
相关标签/搜索