Java之成员访问控制

  • 前言

在介绍访问控制之前,首先需要了解的是成员访问指的是什么。成员访问是指的以下两种操作:

  1. 一个类中的方法代码是否能够访问(调用)另一个类中的成员
  2. 一个类是否能够继承其父类的成员

本文将会介绍四种成员访问权限


  • 公共类型:public

公共类型使用public关键字修饰,当一个成员被修饰为public时,所有其他类,无论该类属于那个包,均能够访问该成员,例:

test.java中:

package chapter03;

public class Test 
{
	public void method()
	{
		System.out.println("调用的方法为public类型");
	}
	
}

如上述例子中,Sample3_26中的main方法调用了包chapter03中的Test中的method方法。这是因为method方法被声明为public。

对于继承而言,规则为,如果父类的成员声明为public,那么无论这两个类是否在同一个包中,该子类都能继承其父类的成员。


  • 私有类型:private

        这里将介绍成员被标识为私有类型后的含义与用法,并且在最后将介绍面向对象中的封装及其优点。标识为私有类型的成员用 private关键字修饰,其不能被该成员所在类之外的任何类中的代码访问。例如对代码Test稍做修改,改为 Private Test类,而代码 Sample3-26不变:


       编译上述两个源代码文件,并运行类 Sample3-26,编译器报错,如上图所示。
       从图可以看出,方法 method却不能被调用。因为其被设为pivate类型,对该成员自己类之外的任何代码来说都是不可见的对于继承而言,规则为如果父类的成员声明为 private,子类在任何情况下都不能继承该成员。


  • 默认类型(defaault)

        当一个成员前面没有写任何访问限制修饰符时,其访问权限为默认类型。具有此访问权限的权限,只对同一个包中的类是可见的,也就是说,在同一个包中,默认类型相当于public,而对包外相当于private。

只需将两个类放到同一个包中,或将默认类型改为public类型,就可以解决问题。


  • 保护类型:protected

        标识为保护类型的成员用protected关键字修饰,其规则几乎与默认类型几乎一样,当访问该成员的类位于同一包内,则该类型的访问权限相当于public类型。只是有一点点区别,如访问该成员的类位于包外,则只有通过继承才能访问该成员。下表列出了修饰符及其可见性:

可见性publicprotecteddefaultprivate
对同一个类
对同一个包中的任何类
对包外所有非子类
对同一个包中的子类基于继承访问
对包外的子类基于继承访问

访问修饰符不能用来修饰局部变量,否则会导致编译错误,而且局部变量的作用域为局部,也没有必要。

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值