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

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("一般");

}

}

}


浮生若梦144
浏览 1481回答 3
3回答

手里剑

因为你的 public static void main()方法是用static修饰的呀,static修饰的方法要调用类的属性时(即grade)时,属性也必须要用static。还有一种方法不需要static修饰,那就是把grade放在 static{  }  这个代码块里面哈。扩展: 对于static的简单理解 就是,如果一个类中的某个方法使用了static 修饰,那么这个方法调用时不用使用new 先创建一个对象,而是直接调用  类名.方法()  即可。不用 static      //  public void say(){ }        person person  = new Person();        person.say();    2 .使用static          //public static void say()        person.say();如果满意记得给我采纳哦

香飘飘丶

static类似于全局变量,任何static方法中都可以直接引用。否则是局部变量,需要new出一个对象(Obj)然后使用 Obj.grade 的这种方式进行调用。

迷之葱二

因为main是静态方法,静态方法只能引用的成员变量,只能是静态的成员变量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java