Refri2010的个人博客分享 http://blog.sciencenet.cn/u/Refri2010

博文

[Java的报错信息之一] Non-static variable/method cannot be referenced from a static cont

已有 18233 次阅读 2010-3-27 21:00 |个人分类:生活点滴|系统分类:科研笔记| java, static, 报错信息

问题】
程序报错信息如下:
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);
}





https://blog.sciencenet.cn/blog-412518-306666.html

上一篇:如何制作java类库文件?
下一篇:Java类库和JNI
收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-12 17:10

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部