菜鸟求救!(non-static variable this cannot be referenced from a static context)

dbetter 2002-08-02 10:22:10
为什么我写java程序时,明明一点语法错误都没有,但是编译时总会出这个错误:non-static variable this cannot be referenced from a static context?
害得我要在每一个变量、函数、类前加上static才能解决,为什么会这样呢?有没有什么好的解决方法?
...全文
3980 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
JoyJava 2002-08-04
  • 打赏
  • 举报
回复
定义内部类的实例可以使用 Test.primeNumber prime=test.new primeNumber(),如果没有记错的话
dbetter 2002-08-02
  • 打赏
  • 举报
回复
gularess(无吃哪拉):我想再问问,我现在在test这个类中还定义有一个子类,名称是primeNumber,那么,按照你的那种new test的方法,该如何实例化这个类呢?我用了你的方法:Test test = new Test();先new了一个class,然后用
test.primeNumber prime=new test.primeNumber();或是
primeNumber prime=new primeNumber()试过了,都不能实例化primeNumber这个类啊,错误提示是:“cannot resolve symbol”。
bhr 2002-08-02
  • 打赏
  • 举报
回复
faint,main 方法都能修改呀!
dbetter 2002-08-02
  • 打赏
  • 举报
回复
是的,我把public static void main改成public void main,去掉static 后再调用其他方法什么的就不会出这个错误提示了,麻烦再问问,这个static的作用和含意是什么呢?
gularess 2002-08-02
  • 打赏
  • 举报
回复
public class Test {
public String name;
public static void main(String[] args) {
name = "lskdjf"'//error
}
}
这是典型的错误,因为main方法是static的,不属于Test类,如果在他内部调用name,而name是每一个Test实例都有的变量,那main中应该去哪一个实例的name呢?所以你必须:
public static void main(String[] args) {
Test test = new Test();
test.name = "safsd";
}

其余情况类同!
zjq1980 2002-08-02
  • 打赏
  • 举报
回复
先new一个该类的对象,再使用这个方法。
--- ZJQ
chrischen79 2002-08-02
  • 打赏
  • 举报
回复
ur source code plz
bhr 2002-08-02
  • 打赏
  • 举报
回复
静态方法里不能调用非静态方法.
你可以在静态方法中调用对象的方法!
ltylty 2002-08-02
  • 打赏
  • 举报
回复
类中定义子类。不清楚什么意思。子类应该继承的么。
public class primeNumber extends Test
我看是你的定义不对,所以找不到primeNumber类

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧