重新精读《Java 编程思想》系列之类的访问权限

举报
经典鸡翅 发表于 2022/02/18 00:43:41 2022/02/18
【摘要】 Java 中,我们用访问权限修饰词确定库中的哪些类对于使用者是可以使用的。 访问权限修饰词有 public,protected,private 和什么都不写。 那么对于类来说,我们只可以用 public 和什么都不写两种。 protected 和 private 是不可以直接修饰类的。 我们在编译器中进行尝试。发现两种都是会提示报...

Java 中,我们用访问权限修饰词确定库中的哪些类对于使用者是可以使用的。
访问权限修饰词有 public,protected,private 和什么都不写。
那么对于类来说,我们只可以用 public 和什么都不写两种。
protected 和 private 是不可以直接修饰类的。
我们在编译器中进行尝试。发现两种都是会提示报错的。说明是不可行的。


而我们使用 public 和不写修饰词是可以通过编译的。

弄清楚了什么可以修饰,什么不可以修饰之后,我们再来详细分别探究一下 public 和 不写修饰词的两种情况。

Public 修饰类

我们在使用public 修饰类的时候,要注意以下两点限制。
1、同一个类中只能有一个public类,多个是不被允许的。


这样是不行的,编译器告诉我们,需要在另一个文件中,重新声明这个class类。
2、public 修饰的类名必须与文件的类名一模一样,大小写敏感。
比如我们的文件名是 TestPublic,我们的public 修饰的类名也必须是 TestPublic,当你小写了一个字母,或者换名,都是不可以的。

再来说一下,当类是使用 public 修饰的时候,证明该类可以被同包或者不同包的任意类都可以访问是完全公开的。

无修饰词的修饰类

与public 不同的是,比如你的文件名叫 TestPublic,你内部的类如果不加修饰词,你可以随意取名。这样是完全不会报错的,但是一般是不会这么做的。


而且如果不使用修饰词修饰,在一个文件中,是可以拥有多个无修饰词的类的。

当你使用无修饰词的类的时候,只有与当前类同包下的类才可以创建对象。其他包是不可以创建这个类的对象的。
所以说,对于类来说,我们要不然使用 public 修饰,要不然使用包访问权限修饰。
我们使用修饰词是来控制对于类的访问。我们如果不想让类被其他人使用,可以将类的构造器方法设置为private。这样其他类就不能创建这个类的对象。

但是这也不是肯定的,我们可以通过一种设计模式,单例模式来实现。这样,即使构造方法是私有的。我们也可以获得这个对象。

文章来源: blog.csdn.net,作者:经典鸡翅,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/hanqing456/article/details/111878931

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。