知识点总结于毕向东Java基础视频教程25天版本,侵权请联系删除。
包(package)
- 对类文件进行分类管理。
- 给类提供多层命名空间。
- 写在程序文件的第一行。
- 类名的全称的是:包名.类名。
- 包也是一种封装形式。
classpath(在Dos命令行下的操作)
- 给JVM提供的一个环境变量。
- 指定类或者包所在的路径。
- classpath变量值的最后有分号与无分号的区别。
加上分号是在原有变量值上追加当前变量值,不加分号是重新设置为当前变量值。 - 思考:在开发时,分号是否需要呢?
不需要。在开发时,只需要设置特定的一个环境用来测试。
包与包之间的访问(在Dos命令行下操作)
- 被访问的包中的类权限必须是public的。
- 包与包之间可以使用对方成员的权限:public或者protected。
- protected是为其他包中的子类提供的一种,被protected修饰的成员无法被其它包中的子类直接调用,必须先继承该方法的类。
访问修饰符 | public | protected | default | private |
---|---|---|---|---|
同一类中 | OK | OK | OK | OK |
同一包中 | OK | OK | OK | NO |
子类 | OK | OK | NO | NO |
其它类中 | OK | NO | NO | NO |
在当前java文件路径下Dos命令行下分别执行:
javac -d [存放包的路径] DemoA.java
javac -d [存放包的路径] PackageDemo.java
package packa;
public class DemoA
{
public void show()
{
System.out.println("demoa show run");
}
}
package pack;
class PackageDemo{
public static void main(String[] args){
packa.DemoA d =new packa.DemoA(); //类名的全名为:包名.类名,省略报名会报错
d.show();
}
}
执行后会出现以下错误:
出现原因:当前目录下没有packa这个包,而这个包正存放在我们之前给定的存放包的路径当中。
解决方式:需要设置classpath,告诉jvm去指定的路径找packa包。
设置完classpath后,再对PackageDemo.java再次进行编译即可。
(注意对类和需要调用的成员用public修饰)
结果:
classpath设置的目的,在于告诉Java执行环境,在哪些目录下可以找到你所要执行的Java程序所需要的类或者包。
不同包中的类的继承关系:
创建新包:
package packb;
public class DemoB
{
protected /*保护*/ void method() //只有被继承的类才能调用该方法,因为有protected修饰
{
System.out.println("demoB method run");
}
}
package packa;
public class DemoA extends packb.DemoB //继承
{
public void show()
{
System.out.println("demoa show run");
method();
}
}
输出结果:
导入import
当我们想要在不同的包中创建一个包的特定对象,考虑到包的多层次性(包中还有包),会出现XXX.YYY.ZZZ.Class package=new XXX.YYY.ZZZ.Class();的情况,为了简化类名的书写,就有了import关键字。
- 简化类名的书写。
- 一个程序文件中只有一个package,但可以有多个import。
- import用来导包中的类,不导入包中的包。
import packageA.*;
代表导入packageA包中的类
import packageA.packageZI.*;
代表导入packageA包中的子包packageB中的类 - 一般导入类时不建议用通配符"*",需要用到哪个类就导入哪个类,不然会占用内存。
- 当导入的多个包中有重名的类时,这个类必须加上包名。
- 建议定包名时不要重复,可以使用url来定义名称,因为域名是唯一的。
jar包
jar包就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性以及方法。
- 方便项目的携带。
- 方便于使用,只要在classpath设置jar路径即可。
- 数据库驱动,SSH框架等都是以jar包体现的。
jar包的操作(通过jar.exe工具对jar的操作):
在Dos命令行下:
- 创建jar包
- jar -cvf mypack.jar packa packb
- 查看jar包
- jar -tvf mypack.jar [>定向文件]
- 解压缩
- jar -xvf mypack.jar
- 自定义jar包的清单文件
- jar –cvfm mypack.jar mf.txt packa packb