- /*static方法*/
- static方法就是没有this的方法。
- 在static方法内部不能调用非静态方法,反过来是可以的。
- 而且可以在没有创建任何对象的前提下,
- 仅仅通过类本身来调用static方法。
- 这实际上正是static方法的主要用途。
- static关键字的基本作用,简而言之,一句话来描述就是:
- 方便在没有创建对象的情况下来进行调用(方法/变量)。
- 对于静态方法来说,是没有this的,因为它不依附于任何对象,
- 既然都没有对象,就谈不上this了。
- 并且由于这个特性,在静态方法中不能访问类的非静态成员变量
- 和非静态成员方法,因为非静态成员方法/变量都是必须依赖
- 具体的对象才能够被调用。
- 在非静态成员方法中是可以访问静态成员方法/变量,
- class MyObject {
- private static String str1 = "staticProperty"; //静态成员变量
- private String str2 = "property"; //非静态成员变量
-
- //空参构造
- public MyObject() {
- }
- public void print1() {
-
- print2();
- }
- //静态成员方法
- public static void print2() {
-
- //! print1(); //这是不对的,静态不能调用非静态,因为只有具有具体对象后非静态方法才能被调用
- }
- }
- /*
- 总结:
- 如果说想在不创建对象的情况下调用某个方法,
- 就可以将这个方法设置为static。
- 我们最常见的static方法就是main方法,
- 为什么main方法必须是static的?因为程序在执行main方法的时候没有创建任何对象,
- 因此只有通过类名来访问。
- 备注,即使没有显示地声明为static,类的构造器实际上也是静态方法
- */
复制代码
|
|