A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© James_01 中级黑马   /  2016-6-23 17:54  /  404 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*static方法*/
  2. static方法就是没有this的方法。
  3. 在static方法内部不能调用非静态方法,反过来是可以的。
  4. 而且可以在没有创建任何对象的前提下,
  5. 仅仅通过类本身来调用static方法。
  6. 这实际上正是static方法的主要用途。
  7. static关键字的基本作用,简而言之,一句话来描述就是:
  8. 方便在没有创建对象的情况下来进行调用(方法/变量)。

  9. 对于静态方法来说,是没有this的,因为它不依附于任何对象,
  10. 既然都没有对象,就谈不上this了。
  11. 并且由于这个特性,在静态方法中不能访问类的非静态成员变量
  12. 和非静态成员方法,因为非静态成员方法/变量都是必须依赖
  13. 具体的对象才能够被调用。

  14. 在非静态成员方法中是可以访问静态成员方法/变量,
  15. class MyObject {
  16.         private static String str1 = "staticProperty";        //静态成员变量
  17.         private String str2 = "property";        //非静态成员变量
  18.        
  19.         //空参构造
  20.         public MyObject() {
  21.         }

  22.         public void print1() {
  23.                
  24.                 print2();
  25.         }

  26.         //静态成员方法
  27.         public static void print2() {
  28.        
  29.                 //! print1();        //这是不对的,静态不能调用非静态,因为只有具有具体对象后非静态方法才能被调用
  30.         }
  31. }

  32. /*
  33. 总结:
  34. 如果说想在不创建对象的情况下调用某个方法,
  35. 就可以将这个方法设置为static。
  36. 我们最常见的static方法就是main方法,
  37. 为什么main方法必须是static的?因为程序在执行main方法的时候没有创建任何对象,
  38. 因此只有通过类名来访问。
  39. 备注,即使没有显示地声明为static,类的构造器实际上也是静态方法
  40. */
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马