为什么需要包?
Package——声明包
可以编写属于自己的java包,为了保证包名的唯一性,要求唯一的前缀,推荐使用互联网上的域名倒置作为唯一前缀
例如:com.zhaoge.learn
标准Java库是由一系列包组成,包括java.lang java.util等等
- 标准包就是层次型包结构,就如同硬盘上嵌套的子目录一样,我们可以使用嵌套层次结构来组织包
- 为了更好的规范代码,防止命名冲突和混乱,所以java出现了打包机制
- 当把类组织起来放进一个包内时,也就给包中的成员赋予了相互访问的权限,就拥有了该包内的程序代码
- 包访问权限把类聚集在一个包中这一做法提供了意义和理由
使用
- 一个类可以使用同一个包中的所有类
- 一个类可以使用其他包中的公开类
- 怎么使用公开类
在每个类前面加上完整包名,例如:
java.util.Scanner sc = new java.util.Scanner(System.in);
更简洁的方式:使用import语句来导包(快捷键ctrl+shift+o)
import java.util.Scanner; //文件顶部导包,快捷键ctrl+shift+o
Scanner sc = new Scanner(System.in);
可以import特定类,也可以导入整个包,通过在源代码文件顶部(import java.util.*)
import com.xiaowei.use.*;//文件顶部导包
Demo2 d = new Demo2();
代码演示
2个包,并且有同名类
learn包demo3
package com.dzz.learn;
public class Demo3 {
public static void main(String[] args) {
Demonew d = new Demonew();
d.age = 10;
d.printfdata();
com.dzz.use.Demonew d1 = new com.dzz.use.Demonew();
d1.name = "张三";
d1.printinfo();
}
}
learn 包 Demonew
package com.dzz.learn;
public class Demonew {
int age;
void printfdata(){
System.out.println("age=" + age);
}
}
use包 Demonew
package com.dzz.use;
public class Demonew {
public String name;
public void printinfo(){
System.out.println("name= " + name);
}
}