权限修饰符的限定范围验证代码

对于四个权限修饰符的作用范围,不再赘述,仅给出验证程序,供大家参考。

package bb;

public class B{
	
	private int x=2;
	private int y=3;
	
	//
	void show1(){
		System.out.println(x);
	}
	protected void show2(){
		System.out.println(y);
	}
}
package dd;

public class D{
	
	private int z=4;
	
	protected void show3(){
		System.out.println(z);
	}
	public void show4(){
		System.out.println(z);
	}
}
import bb.*;
import dd.*;

class A{
	
	private int i=1;
	
	private int getI(){
		return i;
	}
	void show(){
		System.out.println(getI());
	}
}

public class TestAcess extends B{
	public static void main(String [] args){
		
		A a=new A();
		D d=new D();
		TestAcess c=new TestAcess();
		
		//a.getI();
		/*
		  说明在类的外部不能访问私有成员。
		  报错:TestAcess.java:31: 错误: getI()可以在A中访问private
                a.getI();
                 ^
		*/
		a.show();
		/*
		  说明在同一个包内、类的外部可以访问默认成员;
		  而且私有成员可以在类的内部实现访问。
		*/
		//c.show1();
		/*
		  说明在不同的包的子类,不能访问其父类的默认成员
		  报错:TestAcess.java:43:错误: 找不到符号
                c.show1();
                 ^
			符号:   方法 show1()
			位置: 类型为C的变量 c
		*/
		c.show2();
		/*
		  说明在不同的包的子类,能访问其父类的保护成员
		*/
		
		//d.show3();
		/*
		  说明在不同的包的不同类之间,不能访问保护成员
		  报错:TestAcess.java:61: 错误: show3()可以在D中访问protected
                d.show3();
                 ^
		*/
		d.show4();
		/*
		  说明在不同的包的不同类之间,能访问公有成员
		*/
	}
}




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值