java 修饰符权限测试和总结

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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关键字修饰的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值