java类成员的访问控制(翻译自Java Tutorials)

本文详细介绍了Java中的访问控制概念,包括public、private、protected及包级访问四种访问级别,并通过图表形式展示了不同修饰符下的成员访问权限范围。

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

原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/11/28/2793339.html

访问级别修饰符决定了其他类是否可以使用它的特定字段或调用特定方法,有两种级别的访问控制:

顶层级别—public,或者包内私有(没有显式的修饰符)

成员级别—public,private,protected,或者包内私有(没有显式的修饰符)

一个类可以使用public修饰,这个情况,类可以在任何地方被其他类访问。如果类没有修饰符(默认,就是包私有),它只能在自己的包内是可见的(包是相关类的一个组,后面会学习的)

在成员级别,你可以使用public修饰符或者是没有修饰符(包内私有),这个和顶层类级别一样,表示一样的含义。对于成员来说,有两个附加的访问修饰符:private和protected.private修饰符表示这个成员只能被自己的类访问,protected修饰符表示,这个成员只能在自己的包内访问(如包内私有),但是,附加的是,在其它包里,可以被它的子类访问。

下面的表格显示每个修饰符的成员访问许可

Access Levels
ModifierClassPackageSubclassWorld
publicYYYY
protectedYYYN
no modifierYYNN
privateYNNN

第一列指示,在该访问级别,类本身是否有权限访问成员。正如你看到的,一个类总是可以访问它的成员。第二列只是在同个包的类(不管是否继承的关系)是否有权限访问成员,第三列指示包外的类是否有权限访问该成员。第四列指示全部的类是否有权限访问该成员。

访问级别影响你两个方面。第一,当你使用来自其他来源的类,如Java平台的类,访问级别确定你自己的类可以使用这些类的哪些成员。第二,当你写一个类,你需要决定每一个成员变量和每个方法应该有什么样的访问级别。

让我们来看看类的集合和访问级别如何影响可见性。下图在这个例子中显示四大类,还有它们之间的关系。

Classes and Packages of the Example Used to Illustrate Access Levels

说明类和包的访问级别的例子

 

 

下面的表显示了Alpha类的成员在每个访问修饰符,它们对于其它类是否可见。

Visibility
ModifierAlphaBetaAlphasubGamma
publicYYYY
protectedYYYN
no modifierYYNN
privateYNNN

 

 

 

 

 

 

 

如何选择访问级别:

如果其他程序员使用你的类,你要确保滥用不会导致发生错误,访问级别可以帮助你做到这一点。

  使用最严格的访问级别,对于特定成员来说是合理的。尽可能使用private,除非你有一个很好的理由不用。

  除了常量,其他字段避免public(在本教程中的许多例子中使用public字段。这可能有助于简洁的说明,但不建议用于生产代码。)public字段往往导致你一个特定的实现,限制你改变你的代码的灵活性。

转载于:https://www.cnblogs.com/ggjucheng/archive/2012/11/28/2793339.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值