java中的包

包的概念

在日常生活中有很多同名的人,为了将这些同名的人进行区分,就出现了身份证,每个人的身份证号都是不一样的。在Java语言里面,开发者难免会编写出同名的类,为了区分出不通人开发出来的类,Java引入了包的概念。

使用package声明包名

在类名前面使用关键字package加入包名来避免命名冲突问题,因为域名是世界上唯一的,所以建议使用公司倒写的域名来命名包名,通常是小写
例如:package com.monkey1024.score.system
上面包名的含义是monkey1024公司开发的score项目(学生成绩管理项目),system是score项目里面的一个模块。

注意:
package语句只能出现在.java源文件的第一行
package语句在一个java文件中只能有一个
如果没有package,默认表示无包名

创建一个测试类

package com.monkey1024.score.system;
public class Test01{

    public static void main(String[] args){

        System.out.println("成绩管理系统"); 
    }
}

带包类的编译和运行

使用javac命令编译时,加上-d

例如:javac -d . Test01.java

上面的.表示当前路径

运行时,使用包名.Test01

即运行的时候使用的是全限定名

全限定名=报名+类名

使用import关键字导入不同包下的类

将上面的Test01的包名修改一下

    package com.monkey1024.oa.system;

    public class Test01{

        public static void main(String[] args){
            AddStudent as = new AddStudent();//报错找不到类
            as.add()
            System.out.println(as); 
        }
    }

上面代码将会报错,因为两个类在不同的包里面,在Test01这个包里面,系统找不到AddStudent类,所以前面需要加上包名:

com.monkey1024.oa.student.AddStudent as = new com.monkey1024.oa.student.AddStudent();

每次用到这个类时都需要写上包名,比较繁琐,我们可以使用import关键字将不同包下的类导入

    package com.monkey1024.oa.system;

    import com.monkey1024.oa.student.*//导入这个包下的所有类
    import com.monkey1024.oa.student.AddStudent//导入这个包下的AddStudent类,建议使用这种方式

    public class Test01{

        public static void main(String[] args){
            AddStudent as = new AddStudent();//这样就没问题了
            as.add()
            System.out.println(as); 
        }
    }

注意:java.lang软件包下所有类不需要手动导入,系统自动导入,Object类,String类都在这个包里面