Java访问权限

来源:互联网 发布:淘宝怎么同步付款 编辑:程序博客网 时间:2024/06/11 14:34

一,成员访问权限

  1. public–公有

    • 成员变量,成员方法,类—-可以被任何类访问(不管是不是在同一个包中);
  2. protected–保护

    • 成员变量,成员方法—-只能被同包,同目录下,该类自身,子类访问;
  3. 无限定词–包可访问类型

    • 成员变量,成员方法,类—-只能被类自身以及同一个包或目录下的类访问;
  4. private–私有

    • 成员变量,成员方法—-只能被类自身访问;
  5. 权限总结

    • 一个类自身可访问该类的任何成员方法和成员变量;
    • 同一个包类仅不能访问private修饰的私有成员;
    • 不同包的非子类只能访问该类的public成员;
    • 子类可拥有父类所有的非私有成员方法和成员变量;
  6. 使用总结

    • 一个对象所有的成员变量如有可能应当是私有的,至少应是保护类型的;
    • 类的构造方法至少应该是公有的,或包可访问的;

二,静态成员变量和静态成员方法

  1. static修饰符

    • 与public,private,protected等一起做修饰作用;
  2. 类变量和类方法

    • static修饰成员变量叫做类变量,也叫静态成员变量;
    • 类变量可被该类所有的实例对象共享;
    • 一个非私有的静态变量可以直接通过类名访问,也可以通过实例对象名访问;
    • 没有static限定的是实例变量,每个对象都有自己的实例变量的拷贝,但不管多少对象被实例化,一个静态成员变量仅存在一个版本;
  3. 类方法

    • static修饰的成员方法叫做类方法或者静态成员方法;
    • 静态成员方法在所有实例对象间是共享的,不需要实例化对象就可以调用,即可以直接使用类名访问;
    • 静态成员方法只能访问静态成员变量,输入的参数,以及该类中的其他静态成员方法;
  4. static使用总结

    • 运行过程中仅依赖于输入参数的方法应标记为静态成员方法;
    • 类变量通常是定义常数,即使用限定语public static final,这样该类变量就是安全的,因为改变量一旦经过初始化就不能改变,如PI;
0 0