Java——package,import

158


/*
	关于java语言当中的包机制:
		1、包又称为package,java中引入package这种语法机制主要是为了方便程序的管理。
		不同功能的类被分门别类放到不同的软件包当中,查找比较方便,管理比较方便,易维护。

		2、怎么定义package呢?
			- 在java源程序的第一行上编写package语句。
			- package只能编写一个语句。
			- 语法结构:
				package 包名;

		3、包名的命名规范:

			公司域名倒序 + 项目名 + 模块名 + 功能名;

			采用这种方式重名的几率较低。因为公司域名具有全球唯一性。

			例如:
				com.bjpowernode.oa.user.service;
				org.apache.tomcat.core;

		4、包名要求全部小写,包名也是标识符,必须遵守标识符的命名规则。

		5、一个包对应一个目录。

		6、使用了package机制之后,应该怎么编译?怎么运行呢?
			
			- 使用了package机制之后,类名不再是Test01了,类名是:com.bjpowernode.javase.day11.Test01
			
			- 编译:javac java源文件路径(在硬盘上生成一个class文件:Test01.class)

			- 手动方式创建目录,将Test01.class字节码文件放到指定的目录下

			- 运行:java com.bjpowernode.javase.day11.Test01

			- 另一种方式(编译 + 运行):
				
				* 编译
					javac -d 编译之后存放路径 java源文件的路径

				* 例如:将F:\Hello.java文件编译之后放到C:\目录下
					javac -d C:\ F:\Hello.java

				* javac -d . *.java
					将当前路径中*.java编译之后存放到当前目录下。

				* 运行:JVM的类加载器ClassLoader默认从当前路径下加载。
					保证DOS命令窗口的路径先切换到com所在的路径,执行:
						java com.bjpowernode.javase.day11.Test01
*/
package com.bjpowernode.javase.day11; //4个目录【目录之间使用.隔开】

public class Test01
{
	public static void main(String[] args){
		System.out.println("Test01's main method execute!");
	}
}
package com.bjpowernode.javase.day11;

public class Test02
{
	public static void main(String[] args){
		
		//完整类名是:com.bjpowernode.javase.day11.Test01
		com.bjpowernode.javase.day11.Test01 t = new com.bjpowernode.javase.day11.Test01();
		System.out.println(t); //com.bjpowernode.javase.day11.Test01@179935d

		//可以省略包名,因为Test01和Test02在同一个软件包当中。
		Test01 tt = new Test01();
		System.out.println(tt); //com.bjpowernode.javase.day11.Test01@b9e45a

	}
}
package com.bjpowernode;

public class Test03
{
	public static void main(String[] args){
		
		//创建Test01对象
		//以下代码编译错误:当省略包名之后,会在当前包下找Test01
		//实际上编译器去找:com.bjpowernode.Test01了。这个类不存在。
		//Test01 tt = new Test01();
		//System.out.println(tt);
		
		//修改以上的错误
		//包名不要省略,添加包名
		//结论:什么时候前边的包名可以省略呢?Test03和Test01在同一个包下的时候不需要加包名。
		com.bjpowernode.javase.day11.Test01 tt = new com.bjpowernode.javase.day11.Test01();
		System.out.println(tt);
		
		com.bjpowernode.javase.day11.Test01 ttt = new com.bjpowernode.javase.day11.Test01();
		System.out.println(ttt);

		com.bjpowernode.javase.day11.Test01 tttt = new com.bjpowernode.javase.day11.Test01();
		System.out.println(tttt);
	}
}

package org.apache;

/*
	import语句用来完成导入其他类,同一个包下的类不需要导入,
	不在同一个包下需要手动导入。

	import语法格式:
		import 类名;
		import 包名.*;

	import语句需要编写到package语句之下,class语句之上。

*/
//import com.bjpowernode.javase.day11.Test01;
import com.bjpowernode.javase.day11.*;

import java.util.*;
import java.util.Date;

public class Test04
{
	public static void main(String[] args){
		

		com.bjpowernode.javase.day11.Test01 tt = new com.bjpowernode.javase.day11.Test01();
		System.out.println(tt);
		
		com.bjpowernode.javase.day11.Test01 ttt = new com.bjpowernode.javase.day11.Test01();
		System.out.println(ttt);

		com.bjpowernode.javase.day11.Test01 tttt = new com.bjpowernode.javase.day11.Test01();
		System.out.println(tttt);

		//以上程序可以,就是麻烦一些。
		Test01 x = new Test01();
		System.out.println(x); //com.bjpowernode.javase.day11.Test01@4e25154f

		Test01 y = new Test01();
		System.out.println(y); //com.bjpowernode.javase.day11.Test01@70dea4e
		
		//java.lang.*; 不需要手动引入,系统自动引入。
		//lang:language语言包,是java语言的核心类,不需要手动引入。
		String s = "abc";
		System.out.println(s);
		
		//直接编写以下代码编译错误,因为Date类没有找到
		//Date d = new Date();

		//java.util.Date d = new java.util.Date();

		//使用import语句之后:import java.util.Date;
		Date d = new Date();
	}
}

/*
	最终结论:
		什么时候需要import?
			* 不是java.lang包下,并且不在同一个包下的时候,需要使用import进行引入。
*/
package com.May.eight;

import java.util.Date;

import com.Apr.thirty.Cat;

//myeclipse导入类的快捷键:ctrl + shift + o

public class Test {

	public static void main(String[] args) {

		// 编译错误
		// Cat c = new Cat();

		/*
		 * com.Apr.thirty.Cat c = new com.Apr.thirty.Cat(); 
		 * System.out.println(c);
		 */

		Cat c = new Cat();
		System.out.println(c);

		Date t = new Date();
		System.out.println(t);
	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值