【Java基础笔记】1-6 包机制

§1-6 包机制

为更好地组织类,Java 提供了包机制,用于区别类名的命名空间。

包语句的语法格式为:package pkg1[.pkg2.[pkg3...]]

1-6.1 包的作用和命名

包的命名

  • 只能包含数字、字母、下划线、小圆点,但不能用数字开头;

  • 不能为关键字或保留字;

  • 以下是错误包名:

    demo.class.exec1demo.12a

命名规范:一般为 com.公司名.业务模块名,即倒置域名。

包的作用

  1. 区分相同名字的类;
  2. 当类很多时,可以很好地管理类(见 Java API 文档);
  3. 控制访问范围。

1-6.2 包的基本语法和原理

打包语法:使用 package 关键字打包,必须位于文件的首行,且一个类中有且只有一句 package 语句。

package package1[.package2...];

导入包语法:位于 package 语句下,类定义前,可以有多句,无顺序要求。

import package1[.package2...].(classname|*);

注意:导入包时

  1. 若导入的包内成员与当前类重名,将会报错;

  2. import语句必须在packge语句下;

  3. 可以使用通配符*导入包下所有成员;

  4. 建议需要什么就导入什么,尽量避免全部导入;

  5. 所导入包中含有重名类,创建对象时可以通过添加包名加以区分;

    例:有以下两个包

    //com.zebt.packages.zhangsan.Student.java
    package com.zebt.packages.zhangsan;
    
    public class Student { }
    
    //com.zebt.packages.lisi.Student.java
    package com.zebt.packages.lisi;
    public class Student {}
    

    在测试类中,有

    package com.zebt.packages;
    
    import com.zebt.packages.zhangsan.Student;	//只能导入其一
    
    public class Test {
        public static void main(String[] args) {
            Student s1 = new Student();		//由于有import语句,包名可省略
            com.zebt.packages.lisi.Student s2 = new com.zebt.packages.lisi.Student();	//lisi
            
            System.out.println(s1);
            System.out.println(s2);
        }
    }
    

    运行,得到

    com.zebt.packages.zhangsan.Student@58372a00
    com.zebt.packages.lisi.Student@4dd8dc3
    

移动包:IDEA 会默认压缩包,为创建多级包,应在工程栏的设置中取消勾选Compact Middle Packages

同时,若发现无法移动类或包,请在目标位置新建包后再移动。

包的原理:包的本质实际上就是通过创建不同的文件夹 / 目录来保存类文件。

这一点在 IDEA 左侧的文件资源管理器中可清晰看出。

1-6.3 常用的包

java.lang.*lang 包是基本包,默认导入,不需要再导入。例如 String, Math 等;

java.util.*util 包,系统提供的工具包、工具类,例如 Scanner

java.net.*:网络包,用于网络开发;

java.awt.*:Java 界面开发,GUI 编程。

posted @ 2021-07-14 23:28  Zebt  阅读(118)  评论(0)    收藏  举报