15-package包名详解
package包名详解
package的主要作用就是区分不同开发者定义类名时类名冲突的问题,一个完整的类名是包名.类名,这样就可以显而易见的区分那个类是用来干嘛的。具体的定义和层级划分规则如下
/*
* 如何调用不在同一个包中的类:import
*
* 1.import语句可以引入其他类
* 2.import语句只能出现在package语句之下,
* class定义的语句之上
*
* 3.java.lang;软件包下所有类不需要手动导入,系统自动导入,如Object类
*
*/
package s包package详解1;
import s包package详解2.User;
import java.util.Date;
public class Test01 {
//入口
public static void main(String[] args){
//在没有引入import语句需要把完整的类名写出来,很麻烦
s包package详解2.User u = new User();
System.out.println(u);//com.bjpowernode.javase.day05.User@663d0426
//引入import语句,直接用User创对象
User u1 = new User();
System.out.println(u1);//com.bjpowernode.javase.day05.User@2fdb8f3a
Object o = new Object();
System.out.println(o);//java.lang.Object@5bf6b81c
Date t = new Date();//输出的是字符串,就是说Date类中重写了toString方法
System.out.println(t);//Wed Sep 25 18:16:54 CST 2019
}
}
/*
* 软件包机制:
*
* 1.为了解决类名冲突问题,再类名前加命名空间(包机制)
* 2.在java中使用package语句定义包.(单包、复包)
* 3.package语句只能出现在.java源文件的第一行
* 4.package的定义格式通常采用公司域名倒叙方式
* 例如:com.bjpowernode.oa.system;
* 以上包的含义:
* bjpowernode公司开发oa项目,system是项目中的一个模块。
* package定义的全格式:公司域名倒叙.项目名.模块名;
*
* 5.完整的类名是带有包名的
* 6.带有package语句的java源文件在命令窗口中须这样编译:
* javac -d 生成路径 java源文件路径
*
* 7.运行
* java com.bjpowernode.javase.day05.User
*/
package s包package详解2;
public class User {
public static void main(String[] args){
System.out.println("User's main method excuted!");
}
}