太自由

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 1 //静态与非静态之间的调用问题。
 2 public class StaticDemo 
 3 {
 4     /*
 5     此处演示了,静态的方法(此处是main方法)不能直接调用非静态的方法,可以通过创建该类对象来调用
 6     public void info()
 7     {
 8         System.out.println("简单的info方法!");
 9     }
10     public static void main(String[] args) 
11     {
12         StaticDemo s = new StaticDemo();
13         s.info();
14     }
15     */
16     public static void info()
17     {
18         System.out.println("简单的info方法!");
19     }
20     public static void main(String[] args) 
21     {
22         StaticDemo s = new StaticDemo();    
23         s.info();            //这样用对象来调用静态成员也是对的,单不推荐这样调用,因为静态
24                             //的成员就是应该用类名来调用的。
25 
26 //        new StaticDemo().info();//和上面两句是一样的效果。只不过是使用了匿名的对象来调用而已。
27 
28 //        info();    //这样调用是对的,因为默认使用了类名调用,和下面的调用等价。
29 
30 //        StaticDemo.info();    //这是底层的调用原理,调用静态时,如果不是用对象来调用
31                             //,并且省略的类名,则默认使用类名调用即下面一段话:
32                             //(《疯狂Java讲义》如果调用static修饰的成员(包括方法,
33                             //成员变量)时省略了前面的主调,那么默认使用该类作为主调。)
34     }
35 }

 

posted on 2016-04-29 13:02  太自由  阅读(292)  评论(0编辑  收藏  举报