zoukankan      html  css  js  c++  java
  • 重新精读《Java 编程思想》系列之类的访问权限

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


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


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

    Public 修饰类

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

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


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

    无修饰词的修饰类

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

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

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


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

  • 相关阅读:
    dojo/Deferred类和dojo/promise类的使用
    dojo中类的继承
    c# 委托
    使用Spring Data JPA报错:javax.persistence.TransactionRequiredException: Executing an update/delete query
    服务器重启后,Docker安装的mysql怎么重启?
    IDEA开启Run Dashboard的配置
    Java中List集合去重的几种方式
    关闭迅雷更新到新版本的提示
    XMind8 破解激活教程(win系统)
    连接Oracle报错 ORA-12638: 身份证明检索失败
  • 原文地址:https://www.cnblogs.com/jichi/p/12045420.html
Copyright © 2011-2022 走看看