您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第8章:包及访问控制权限】_访问控制权限及命名规范
发布时间:2020-12-19 17:18:05编辑:雪饮阅读()
protected修饰的方法只能在本包及不同包的子类中访问
假如有B1.java如:
package org.gaojiupan.c;
public class B1{
protected String getInfo(){
return "hello world";
}
}
然后有包含B1.java的TestJava.java
package org.gaojiupan.a;
import org.gaojiupan.c.B1;
class A extends B1{
public void println(){
System.out.println(this.getInfo());
}
}
public class TestJava{
public static void main(String args[]){
new A().println();
}
}
那么接下来进行编译,这里介绍一种自动编译的方法,之前我们像是这样编译就需要先编译B1.java然后再编译TestJava.java,那么这里有一种方法可以一个命令就搞定编译。
D:\>javac -d . *.java
这就好像是通配符一样的
那么编译之后我们就可以看看执行结果了
D:\>java org.gaojiupan.a.TestJava
hello world
没错,这是正常访问的,符合protected的规则
那么接下来我们来看看一个不符合protected的使用方式,同样是修改下TestJava.java来看看这个效果:
package org.gaojiupan.a;
import org.gaojiupan.c.B1;
public class TestJava{
public static void main(String args[]){
new B1().getInfo();
}
}
这里可以看到我们没有继承B1类,而是直接new了B1类,然后直接在a包中访问
那么你这就已经不在c包中了,而且还不是通过B1类的派生类进行访问,所以结果就是编译都编译不过。
关键字词:java,包,访问控制权限