作用:
对类文件进行分类管理
给类提供多层命名空间
写在程序文件的第一行
类名的全程是 包名.类名
包也是一种封装形式
set classpath=路径
包名的格式:package 包名;(包名小写)
Javac -d . PackageDemo.java—>>编译包并自动生成包名(直接编译包中的类名会也会自动生成包)
java 包名.Package---->运行包
包之间的访问
不同包中类与类的访问
被访问的包中的类必须是public的,被访问的包中的类的方法也必须是public的
包中编译运行容易出现的错误
PackageDemo.java:8: 找不到符号
符号: 类 DemoA
位置: 类 mypack.PackageDemo
DemoA d = new DemoA();
^
PackageDemo.java:8: 找不到符号
符号: 类 DemoA
位置: 类 mypack.PackageDemo
DemoA d = new DemoA();
^
2 错误
原因:类名写错。
因为DemoA类已经有包的所属,所以必须要明确其包名。
记住:DemoA这个名称错的。 正确名称是包名.类名 packa.DemoA
----------------------------------------------------------------
PackageDemo.java:8: 软件包 packa 不存在
packa.DemoA d = new packa.DemoA();
^
PackageDemo.java:8: 软件包 packa 不存在
packa.DemoA d = new packa.DemoA();
^
2 错误
原因是在当前目录下没找到,因为packa存放在其他目录下,
应该配置一个classpath。
-------------------------------------------------------------------------
PackageDemo.java:8: packa.DemoA 在 packa 中不是公共的;无法从外部软件包中对其进
行访问
packa.DemoA d = new packa.DemoA();
^
PackageDemo.java:8: packa.DemoA 在 packa 中不是公共的;无法从外部软件包中对其进
行访问
packa.DemoA d = new packa.DemoA();
^
2 错误
-------------------------------------
PackageDemo.java:9: show() 在 packa.DemoA 中不是公共的;无法从外部软件包中对其进
行访问
d.show();
^
1 错误
总结:
包与包之间的类进行访问,被访问的包中的类必须是public的,被访问的包中的类的方法也必须是public的。
大总结:
public protected default private
同一类中 ok ok ok ok
同一包中 ok ok ok
子类中 ok ok
不同包中 ok
import关键字
import 为了简化类名书写,导入包中的类
格式
import 包名.类名;
import 包名.;//导入包中所有类
import.包名.包名.; //导入包中的包的所有类
导包的原则:用到哪个类就导入哪个类
jar包
jar是Java的压缩包
可以直接访问里面的类文件不需要解压缩使用之前要设置classpath。