java四种修饰符_java中的四种修饰符

在编程过程中,经常会遇到四种修饰符来控制访问权限。之前对这个知识点没有研究过,一直是一知半解,每次遇到问题都模棱两可,不能给出一个确切的答案。近几天系统的看了看,也有了自己的一点心得体会。

正文:

先上总纲:

修饰符

本类

本包

继承类

其他类/其他包

private

default(friendly)

protected

public

注意:

在java中private和protected是不能修饰类的,只能修饰方法和变量,在thinking in java这本书里也有提到。而 public 和 默认 则没有限制。

private:私有修饰符

这个修饰符很简单,被它修饰的变量和方法(包括静态和成员),都只能在类的内部使用,并且不能被继承。在类的外部即便是通过类本身去调用静态变量/方法,在语法编译也是不能通过的。所以,如果想要使用被private修饰的东西,必须提供可以被其他类调用的方法来间接的操作。当然,你要让哪些类可以间接操作,依然可以用修饰符来控制权限。

default:默认修饰符(友好修饰符)

使用这个修饰符的变量和方法,只能在本包中使用。假定现在有A,B两个类,其中A类有使用默认修饰符的属性和方法,当A,B两个类处于同一个文件夹时,那么B类可以使用这些属性和方法,但当A,B不在同一个文件夹时,那么B就不能使用。

使用该修饰符修饰类的时候,说明该类只能被在同一包的其他类继承,创建和使用,其他包中的类是不能继承的,而且也不能使用该类。

当使用该修饰符修饰变量和方法,而类本身用public修饰时,这些变量和方法只能被同一包的其他类继承和使用。不同包的类即使继承了该类,但用default修饰的变量和方法也不能被继承和使用。

protected:受保护修饰符

这个修饰符给我的感觉就像是专门为了继承而存在的。因为它和默认修饰赋的作用域基本一致,只是增加了可以在子类中使用的权限。所以,A类中被protected修饰的变量和方法,可以被其子类继承和使用(在不在一个包都无所谓)。而对于没有继承A类的类,它的操作权限参考默认权限就可以了。

(但是protected不能修饰类,我没有搞清楚为什么,因为感觉是可以的。只能先留在这,等以后清楚了,再修改。)

public:公共修饰符

我大public就不说了,公共的嘛,谁都可以来掺一脚,哈哈。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值