cs61b2018sp WEEK6 包、访问控制、Object
2022-03-28 本文已影响0人
且乐一杯酒
2022.3.29
WEEK6 包、访问控制、Object
一、内容
1.包的使用
我们之前讲过包,我们现在来讲讲包如何使用
创建包
在代码顶部写package XX.XX.XX这里的XX指包名,注意文件夹结构描述如下图所示
如果package A.B.C,那么这个文件就在A文件夹里的B文件夹里的C文件夹。
使用包
即** 包名+类名 **
可以直接“完整”包名(相对于当前目录下的包名)使用
先导包,再直接使用
2.JAR 文件
这个JAR文件其实就像一种压缩文件,我们把文件后缀 .jar 改为 .zip 就可以查看里面的文件
其本质就是很多java文件的压缩包,其实不能很好地保护好你的代码
在IntelliJ创建一个jar文件
第一步
这里的库(Libraries)可以引入一个jar文件
选中工件(Artifacts)的+ -> JAR->来自具有依赖性的模块(from module with dependencies)
设置一些位置,OK就行了
3.访问控制(Access Control)
我们前面使用过 public 和 private 修饰符
如果我们希望有一些字段可以被子类访问但不会被其他无关的类访问,那应该用什么修饰呢?
protect
如果不进行修饰,又会怎么样呢?
来个例子看看
虽然子类继承了父类,但size是defult修饰的属于包内私有,而两个类的包名不同,即不在一个包内,所以编译出错
4.访问控制小练习
好的,问题是,如下代码有没有编译错误?
注意这个类是默认包的
第一行:可以。BlackHole和hirsute都是pubilc,可以访问
第二行:可以。b的静态类型为BlackHole,有add方法。
第三行:不可以。同上,BlackHole没有get方法,错误
第四行:不可以。我们注意,hasHair前没有public,只能在其包中访问到,所以不行。
5.对象方法(Object Methods)
所有类都继承Object,我们看看Object里有什么方法吧
二、小结
到此为止,java基础语法讲完了,之后会正式开始讲数据结构和算法,可喜可贺!好好犒劳一下自己,然后抓紧时间往下学习吧!