zoukankan      html  css  js  c++  java
  • 访问权限控制

    Java中的访问权限包括四个等级,权限控制严格程度由低到高。分别为:

    • public:可以修饰外部类、属性、方法,表示公开的、无限制的,是访问限制最松的一级,被其修饰的类、属性和方法不仅可以被包内访问,还可以跨类、跨包访问,甚至允许跨工程访问。
    • protected:只能修饰属性方法,表示受保护的、有限制的,被其修饰的属性和方法能被包内包外子类访问。注意,即使并非继承关系,protected属性和方法在同一包内也是可见的。
    • :即无任何访问权限控制符。千万不要说成default,它并非访问权限控制符的关键字,另外,在JDK8接口中引入default默认方法实现,更容易混淆两者释义。无访问权限控制符仅对包内可见。虽然无访问权限控制符还可以修饰外部类,但是定义外部类极少使用无控制符的方式,要么定义为内部类,功能内聚;要么定义公开类,即public class,包外也可以实例化。
    • private:只能修饰属性、方法、内部类,表示“私有的”,是访问限制最严格的一级,被其修饰的属性或方法只能在该类内部访问,子类、包内均不能访问,更不允许跨包访问。

    由此可见,不同的访问权限控制符对应的可见范围不同。在定义类时,推荐访问控制级别从严处理:

    1. 如果不允许外部直接通过new直接创建对象,构造方法必须是private
    2. 工具类不允许有publicdefault构造方法。
    3. 类非static成员变量并且与子类共享,必须是protected
    4. 类非static成员变量并且仅在本类使用,必须是private
    5. static成员变量如果仅在本类使用,必须是private
    6. 若是static成员变量,必须考虑是否为final
    7. 类成员方法只供类内部调用,必须是private
    8. 类成员方法只对继承类公开,那么限制为protected
  • 相关阅读:
    WebApi 接口参数不再困惑:传参详解
    dataType和contentType的区别
    WaitHandles 的数目必须少于或等于 64 个--任意线程信号量监视
    跨线程调用DataGridView控件
    (转)调整.NET控件WebBrowser的默认浏览器内核版本
    Winform中checklistbox控件的常用方法
    csuoj 残缺的棋盘
    csuoj 你经历过绝望吗?两次! bfs + 优先队列
    csuoj barricade
    csuoj 集训队分组
  • 原文地址:https://www.cnblogs.com/muuu520/p/14503172.html
Copyright © 2011-2022 走看看