java中static
在《Java编程思想》P86页有这样一段话:
“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”
简而言之,static关键字的基本作用,一句话来描述就是:
方便在没有创建对象的情况下来进行调用(方法/变量)。
(1)static修饰方法
static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。
虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。
上述代码中,静态方法print2不能使用非静态成员变量/方法,而非静态方法print1能使用静态成员变量/方法
(2)在Java中切记:static是不允许用来修饰局部变量(和private,public一样)
(3)static修饰的属性和方法,使用类名.xx的形式访问。非静态方法和成员变量,需要new一个对象才能引用。