在静态方法中,通过类名.变量为什么不能访问(sum方法)?
public class HelloWorld { // 定义静态变量score1 static int score1 = 86; // 定义静态变量score2 int score2 = 92; // 定义静态方法sum,计算成绩总分,并返回总分 public static int sum() { return (score1+HelloWorld.score2); } public static void main(String[] args) { // 调用静态方法sum并接收返回值 int allScore =sum(); System.out.println("总分:" + allScore); }
}
题目要求:// 定义静态变量score2 static int score2 = 92;
如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
public static int sum() {
HelloWorld hello=new HelloWorld();
return (score1+hello.score2);
}
静态方法访问非静态成员必须先创建对象,然后通过对象访问,访问非静态方法也是如此
public static int sum() {
HelloWorld hello=new Helloworld();
return (score1+hello.score2);
}
静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。