从《Java编程思想》提炼访问权限的重要性

从《Java编程思想》提炼访问权限的重要性

问题:谁有权限取用该类
描述:访问修饰词,指明哪些是可用,哪些是不可用

访问控制权限与“最初的实现并不完美”有关

理解:代码是变动的 ,通过访问控制权限,控制仅对外暴露哪些,哪些不对外暴露,不对外暴露的部分,代码修改不会影响其他使用者调用

命名空间:Package

  • 要点

    1、进行代码组织的关键字,
    2、一个项目按层级结构拥有独一无二的包名/命名空间
    3、也包含引入jar包的命名空间

  • 为什么要有命名空间

    1、用以解决,两个相同名称的Class文件同时存在的问题

导入命名空间:import

  • 作用:引用命名空间
    1、全包名,具体引用
    2、*
    3、使A命名空间的类拥有B命名空间的类的访问权限
    4、允许一个项目的类同名,前提是在不同命名空间下
    5、直接导入优先级大于*
    
    import com.demo.*;
    import com.demo.User;
    import static com.demo.StatisConstants;
    

权限修饰符

同包名下可访问 子类中可访问 外部包可访问 同类中可访问
public V V V V
protected V V - V
default/friendly V - - V
private - - - V
  • 可以理解为public所有人可见的外貌,protected是可以继承的财产,只有后代可以看见,private是私人生活,仅自己可见
  • 访问权限为类群聚在一个包中提供了意义和理由,在便于组织的同时,也限制了访问权利

隔离谁

  • 类 Class

    • Java源文件可以被称为编译单元,以.java结尾,而一个编译单元有且仅有一个public class,可以有任意个非public class。
    package com.demo;
    
    public class User {
           }
    
    class User2{
           }
    class User3{
           }
    
    • 如果class只能被public/default修饰,如果被default修饰,只能被同包名下的其他类引用,否则无法引用
  • 方法 Method

    private void fuction1(){
           };
    protected void fuction2(){
           };
    public void fuction3(){
           };
    
  • 域成员 Variable

    private String  privateVariable;
    protected String canExtendVariable;
    public String publicVariable;
    

你可能感兴趣的:(Java成神之路,java基本,访问修饰符,为什么)