访问权限控制
一.成员访问权限
- public–公有
成员变量,成员方法,类—-可以被任何类访问(不管是不是在同一个包中); protected–保护
成员变量,成员方法—-只能被同包,同目录下,该类自身,子类访问;无限定词–包可访问类型
成员变量,成员方法,类—-只能被类自身以及同一个包或目录下的类访问;private–私有
成员变量,成员方法—-只能被类自身访问;
权限总结
一个类自身可访问该类的任何成员方法和成员变量;
同一个包类仅不能访问private修饰的私有成员;
不同包的非子类只能访问该类的public成员;
子类可拥有父类所有的非私有成员方法和成员变量;
使用总结
一个对象所有的成员变量如有可能应当是私有的,至少应是保护类型的;
类的构造方法至少应该是公有的,或包可访问的;
二,静态成员变量和静态成员方法
static修饰符
与public,private,protected等一起做修饰作用;类变量和类方法
static修饰成员变量叫做类变量,也叫静态成员变量;
类变量可被该类所有的实例对象共享;
一个非私有的静态变量可以直接通过类名访问,也可以通过实例对象名访问;
没有static限定的是实例变量,每个对象都有自己的实例变量的拷贝,但不管多少对象被实例化,一个静态成员变量仅存在一个版本;类方法
static修饰的成员方法叫做类方法或者静态成员方法;
静态成员方法在所有实例对象间是共享的,不需要实例化对象就可以调用,即可以直接使用类名访问;
静态成员方法只能访问静态成员变量,输入的参数,以及该类中的其他静态成员方法;static使用总结
运行过程中仅依赖于输入参数的方法应标记为静态成员方法;
类变量通常是定义常数,即使用限定语public static final,这样该类变量就是安全的,因为改变量一旦经过初始化就不能改变,如PI;