为了账号安全,请及时绑定邮箱和手机立即绑定

全局变量在main方法中出现不能将一个非静态变量赋值给静态变量

public class HelloWorld {

 static int var=1;//去掉static就不对了,为什么
 void call()

 { int cal;

 System.out.println("var:"+var);}

 

 void sendMessage()

 {int cal;

  System.out.println("var"+var);}

 

 public static void main(String[] args) {

    //int var=5;

    HelloWorld phone=new HelloWorld();

  phone.call();

  System.out.println(var);//为什么var一定要是static类型,如果不是static就会报错
       }

        }

正在回答

3 回答

”不能将非静态变量赋值给静态变量“,这个一个标准的蠢货级别定义,新手很容易因为这种被蠢货总结的”经验“失去了刨根问底的动力。

原理:

static为类加载的时候执行,发生在创建对象之前,此时非static可以理解为还未"出生"。

而非static需要在创建对象的时候才可以使用。

所以如果static的方法和属性都不能调用非static,而反之可以。

0 回复 有任何疑惑可以回复我~

thanks a lot

0 回复 有任何疑惑可以回复我~

main函数是static

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

全局变量在main方法中出现不能将一个非静态变量赋值给静态变量

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号