当前位置: 代码迷 >> J2SE >> 初学者有关问题之NO.2-静态变量和方法有关问题
  详细解决方案

初学者有关问题之NO.2-静态变量和方法有关问题

热度:212   发布时间:2016-04-24 17:24:29.0
菜鸟问题之NO.2--------静态变量和方法问题
import   javax.swing.*;
class   Demo9   {
static   int   a;
public   Demo9(){
a=1000;
}
public   static   void   printa(){
JOptionPane.showMessageDialog(null,Integer.toString(Demo9.a));
}
public   static   void   main(String[]   args)   {
System.out.println(Demo9.a);---------------------第一句
Demo9   demo=   new   Demo9();
System.out.println(demo.a);
Demo9.printa();-----------------------------第二句
}

}
结果:0
            1000
            弹出窗口:1000
问题:为什么第一和第二句的结果会不一样。

------解决方案--------------------


System.out.println(Demo9.a);---------------------第一句

这是a是静态属性 因为在执行这个方法的时候 没有有实例化类(也就是调用构造函数)

所以这时候a的值为默认值0


Demo9 demo= new Demo9(); //调用构造函数 a等于1000了
System.out.println(demo.a);
Demo9.printa();-----------------------------第二句


已经实例化对象了
所以a=1000
  相关解决方案