包(Package)笔记
对类文件进行分类管理。
给类提供多层命名空间。
写在程序的第一行。
全称是 包名.类名。
包也是一种封装形式。
手动编译时,如果有包,能够编译成功。但是并不能自动生成包得文件夹。生成的class字节码文件还是在当前目录下。可以手动创建文件夹将编译好的clss文件放入文件夹中。
以上问题可以通过加参数来解决: javac -d (后面是目录),如 javac -d C:\myclass Demo.java。
在当前目录下生成目录: javac -d . Demo.java
可以用这种方法将运行文件和源文件相分离。没有必要给源文件。
不同package中类的相互调用(外部软件包调用)。要求: 1. 被调用的包中的类必须是有足够权限的(默认类权限不可以),所以被访问的类要被public修饰。 2. 类公有后,被访问的成员也要公有才可以被访问。
包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
protected权限:别的包中的类不能直接访问,必须是它的子类才可以。给不同包中的子类提供的特殊功能。不同包中的子类可以访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限只有两种: public protected
import 导入的是包中的类,不包括该目录下的子包。
Jar包
jar命令的使用:
jar -cf haha.jar packa pack
将packa包和pack包压缩到haha.jar中。
jar -tf haha.jar
查看jar包中的类文件。
对类文件进行分类管理。
给类提供多层命名空间。
写在程序的第一行。
全称是 包名.类名。
包也是一种封装形式。
手动编译时,如果有包,能够编译成功。但是并不能自动生成包得文件夹。生成的class字节码文件还是在当前目录下。可以手动创建文件夹将编译好的clss文件放入文件夹中。
以上问题可以通过加参数来解决: javac -d (后面是目录),如 javac -d C:\myclass Demo.java。
在当前目录下生成目录: javac -d . Demo.java
可以用这种方法将运行文件和源文件相分离。没有必要给源文件。
不同package中类的相互调用(外部软件包调用)。要求: 1. 被调用的包中的类必须是有足够权限的(默认类权限不可以),所以被访问的类要被public修饰。 2. 类公有后,被访问的成员也要公有才可以被访问。
包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
protected权限:别的包中的类不能直接访问,必须是它的子类才可以。给不同包中的子类提供的特殊功能。不同包中的子类可以访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限只有两种: public protected
public | protected | default | private | |
同一个类中 | ok | ok | ok | ok |
同一个包中 | ok | ok | ok | |
子类 | ok | ok | ||
不同包中 | ok |
import 导入的是包中的类,不包括该目录下的子包。
Jar包
jar命令的使用:
jar -cf haha.jar packa pack
将packa包和pack包压缩到haha.jar中。
jar -tf haha.jar
查看jar包中的类文件。