
1、同一类中测试代码如下:
public class Father {
private void show() {
System.out.println("show");
}
void show2() {
System.out.println("show2");
}
protected void show3() {
System.out.println("show3");
}
public void show4() {
System.out.println("show4");
}
public static void main(String[] args) {
Father f = new Father();
f.show();
f.show2();
f.show3();
f.show4();
}
}
四种修饰符都可以正常输出:
show
show2
show3
show4
可以得出同一个类中,四种修饰符都可以返问。
2、同一个包下。
在上面的基础中创建包,Farther类的包cn.itcast,另新建一个与Father类同包名的Son.java子类,测试代码如下:
package cn.itcast;
public class Son extends Father {
public static void main(String[] args) {
Father f = new Father();
f.show();
f.show2();
f.show3();
f.show4();
System.out.println("--------------");
Son s = new Son();
s.show();
s.show2();
s.show3();
s.show4();
}
}
建包后,而编译出错如下:


另新建一个Test.java,测试结果如下:

所以得出,在同一包下的子类、其他类都可以返问除了private修饰符外的
3、不同包下(子类)
测试代码如下:
package com.wen;
//导包
import cn.itcast.Father;
public class Son extends Father {
public static void main(String[] args) {
Father f = new Father();
f.show();
f.show2();
f.show3();
f.show4();
System.out.println("--------------");
Son s = new Son();
s.show();
s.show2();
s.show3();
s.show4();
}
}

从上面可以知道,子类可以返问在不同包下的父类信息,修饰符权限为protected和public关键字
不同包下其他类(Test类),代码如下:
package com.wen;
import cn.itcast.Father;
class Test {
public static void main(String[] args) {
Father f = new Father();
f.show();
f.show2();
f.show3();
f.show4();
}
}

所以不同包下无关类只能允许访问public关键字修饰的。
本文通过测试代码详细分析了Java中不同修饰符(public, protected, default, private)在同类、同包和不同包下的访问权限,强调了在子类和无关类中的访问特性,有助于理解Java的封装原则。"
111886984,10293094,使用POI的XWPFDocument修改并保存Word文档,"['Java', 'POI', '文档处理', '办公自动化']
847

被折叠的 条评论
为什么被折叠?



