课程
/后端开发
/Java
/Java入门第二季 升级版
allScore 是非静态成员,在静态方法main中,为什么可以直接调用allScore,如:
System.out.println("总分:" + allScore)
2015-12-26
源自:Java入门第二季 升级版 8-9
正在回答
这里的allScore是局部变量 只可以在此main方法中使用
首先得知道什么是成员变量。成员变量,又称全局变量,是在类的变量部分中定义的变量,和类的方法处于同一层次。静态变量和普通成员(或者说非静态)变量是对立的,他们都属于成员变量。而方法中的变量不属于成员变量,就是为了表达一些东西的代号,就是普通的变量(可以认为是局部变量)。这里的allScore不是成员变量,所以谈不上是非静态,而是一个只能在这个方法中使用的局部的变量。
allScore 是在main方法中 在自己的做用域内当然可以使用了,静态方法中不能调用非静态成员,你要搞明白 作用域 什么是作用域 就是{} 括起来的东西,就像的的心肝脾胃肾你自己的东西你当然可以用了
你的allScore 是在方法内定义的吗?不看源码没法判断你的情况
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
2 回答“静态方法中可以直接调用同类中的静态成员,但是不能直接调用非静态成员。”为什么?
1 回答非静态方法中能不能直接调用非静态方法?
2 回答静态方法调用非静态成员
3 回答在static 方法中 可以直接调用同类中的静态成员,但不能调用非静态成员?
4 回答静态方法中调用静态方法会直接执行吗