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

关于static的问题,为什么下面的这个程序的grade必须要用static修饰,否则会报错

关于static的问题,为什么下面的这个程序的grade必须要用static修饰,否则会报错

浮生若梦144 2017-01-07 11:55:57
package com.defalt;public class MainTest { static int grade=90; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub if(grade>=90){ System.out.println("优秀"); } else if(grade>=80){ System.out.println("良好"); } else{ System.out.println("一般"); } }}
查看完整描述

3 回答

已采纳
?
手里剑

TA贡献9条经验 获得超4个赞

因为你的 public static void main()方法是用static修饰的呀,static修饰的方法要调用类的属性时(即grade)时,属性也必须要用static。还有一种方法不需要static修饰,那就是把grade放在 static{  }  这个代码块里面哈。

扩展: 对于static的简单理解 就是,如果一个类中的某个方法使用了static 修饰,那么这个方法调用时不用使用new 先创建一个对象,而是直接调用  类名.方法()  即可。

  1. 不用 static      //  public void say(){ }

        person person  = new Person();

        person.say();

    2 .使用static          //public static void say()

        person.say();


如果满意记得给我采纳哦

查看完整回答
2 反对 回复 2017-01-07
?
香飘飘丶

TA贡献14条经验 获得超6个赞

static类似于全局变量,任何static方法中都可以直接引用。

否则是局部变量,需要new出一个对象(Obj)然后使用 Obj.grade 的这种方式进行调用。

查看完整回答
1 反对 回复 2017-01-07
?
迷之葱二

TA贡献1条经验 获得超1个赞

因为main是静态方法,

静态方法只能引用的成员变量,只能是静态的成员变量。

查看完整回答
1 反对 回复 2017-01-07
  • 3 回答
  • 1 关注
  • 1444 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信