|||
问题】
程序报错信息如下:
Non-static variable dB cannot be referenced from a static context
Non-static method add(double) cannot be referenced from a static context
【程序代码图】
【分析】
Non-static variable / method 非静态变量,非静态方法。
static context 静态上下文,或者称为静态代码块
main( ) 方法是一个必须使用static 修饰符的静态方法,
在其方法内部,只能调用(使用)静态变量或静态方法。
非静态变量,非静态方法被调用时,都会出现以上错误提示。
------------------------------------------------------------------------------------
【建议】
关键的一条:
应首先在main( )方法内定义所在类的一个具体实例。
通过这个实例来引用类中的成员变量和成员方法。
类的其他方法(非静态方法)中,可以直接调用成员变量和成员方法。
因此main() 方法作为程序的入口,应该尽量少写代码语句。
将程序的主体功能部分放在类的其他(非静态)方法中。
【附录】
被static所修饰的成员变量和成员方法表明归某个类所有,它不依赖于类的特定实例,而被类的所有实例共享。
只要这个类被加载,Java虚拟机就能根据类名定位到它们。
调用非静态成员变量和成员方法,
只能首先定义一个类的实例,然后通过实例去调用。
如下
public static void main( ){
Example exam = new Example();
exam.dA = 10;
exam.add(3);
}
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-28 21:36
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社