在面向对象编程中,我们知道private为修饰私有方法或属性,而static用于修饰可供外界无需实例化直接使用的方法或属性,如工具类工具属性,那private和static是不是就很矛盾了呢?因为你是无法通过调用static的方法调用static修饰的方法(属性)的。
static
:静态修饰符,被static修饰的变量和方法类似于全局变量和全局方法,可以在不创建对象时调用,当然也可以在创建对象之后调用。常见的可以用于工具类的工具方法中等,譬如:Math类中的绝大多数方法都是静态方法,他们扮演了工具方法的作用。
private
:声明当前被修饰的变量、方法为私有的。这里的私有指的是仅仅可以被私有访问,举个例子:一个类就像是一台电脑,私用的部分就是除去电脑本身之外用户不可见的部分,譬如:你知道点击哪里可以登录QQ,但是内部到底是怎么登录的QQ你是不知道的,你知道摁哪里可以开关机,但是内部是怎么开关机的你是不知道的,等等,你在使用这个类时那些这个类的确有但是你访问是非法的方法或者变量是被声明为private的,私有不可见且不可访问的。
因为被static修饰的方法只能调用被static修饰的属性(static修饰的属性不仅仅能被static修饰的方法调用
),所以如果一个私有属性会被静态方法调用的话,那么就需要将这个
属性设置为静态属性。私有工具方法也可以设置为private static