• 《Java编程思想》06.访问权限控制


    • 如何把变动的事物与保持不变的事物区分开来
    • 访问权限控制的等级(大->小):public、protected、包访问权限(没有关键词)、private

    包:库单元

    代码组织

    • 编译一个.java文件,文件中的每个类都会有一个输出文件.class,文件名与类名相同
    • Java的可运行程序是一组可以打包并压缩为一个Java文档文件(JAR)的.class文件。Java解释器负责这些文件的查找、装载和解释
    • 类库 ---实际上---> 一组类晚间
    • Java包的命名规则全部使用小写字母
    package access.mypackage;
    public class MyClass{ /* ... */ }
    

    使用import来使access中的名称可用

    import access.mypackage.MyClass
    

    创建独一无二的包名

    • package名称的第一部分:类的创建者的反序Internet域名

    思考:条件编译

    Java访问权限修饰词

    包访问权限

    • 默认访问权限(没有任何关键字)
    • 有时也表示成friendly
      包中的类相对于:
    当前包所有其他类 包之外的所有类
    有访问权限 相当于与private

    取得某成员的访问权限的途径

    • 使改成员为public
    • 成员不加修饰词 & 其他类置于同一个包
    • 继承 - 可访问public成员、protected成员
    • 提供访问其(accessor)和变异器(mutator) - get/set方法

    public:接口访问权限

    private:你无法访问

    通常考虑的是,那些成员是想要明确公开给客户端程序员使用的,从而将它们声明为public,而在最初,你可能不会认为自己经常会需要使用private,因为没有它,照样可以工作。然而,事实很快就会证明,对private的使用是多么的重要,在多线程下更是如此。

    • 任何可以肯定只是该类的一个“助手”方法的方法,都可以把它指定为private,确保不会在包内的其他地方误用

    protected:继承访问权限

    接口和实现

    访问权限的控制->具体实现的隐藏、封装

    • 设定客户端程序员可以使用和不可以使用的边界
    • 将接口和具体实现进行分离

    类的访问权限

    • 对于类的访问权限,仅有两个选择:包访问权限或public

    总结

    • 控制成员的访问权限的两个原因:
      • 使用户不要触碰那些不该触碰的部分
      • 让类库设计者可以更改类的内部工作方式

      面向扩展开放,面向修改关闭

    当具备了改变底层实施细节的能力,不仅可以随意地改善设计,还可能会随意地犯错误,当了解到你所犯的错误是相对安全的时候,就可以更加放心地进行实验,也就可以更快地学会,更快地完成项目

  • 相关阅读:
    软件工程概论通读第二章
    软件工程概论通读第一章
    mac 下安装mongodb
    angular5 ng-content使用方法
    angular5 @viewChild @ContentChild ElementRef renderer2
    关于日期的一篇很好的文章
    angular5 组件之间监听传值变化
    angular5 ng-bootstrap和ngx-bootstrap区别
    angular5表单验证问题
    angular5 路由变化监听
  • 原文地址:https://www.cnblogs.com/hhhqqq/p/12588175.html
Copyright © 2020-2023  润新知