CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

困住我这个菜鸟一晚上的问题(未解决)

楼主lihenggg(李清扬)2003-10-03 23:45:57 在 Java / J2SE / 基础类 提问

public   static   void   main(String   args[])  
  {  
           String   a="1983-12-6";  
  A   y=new   A();  
  y.judge(a);  
  System.out.println("pass");  
  }  
  这是调用部分.后面东西太多不便贴出.编译的时候出错:non-static   variable   this   cannot   be   referenced   from   a   static   context指的是A   y=new   A();这句. 问题点数:10、回复次数:12Top

1 楼happyegg(放松放松)回复于 2003-10-04 00:40:56 得分 0

你的new   A()里面是不是调用了什么不是static的东西?这个exception从你贴的程序中看不出来Top

2 楼CNSC(王)回复于 2003-10-04 00:48:15 得分 10

是不是你的A是main所在的这个类的一个内部方法,如果是的,你把   class   A   改成static   class   A就可以了。Top

3 楼SwordsmanF(香香的味道)回复于 2003-10-04 00:59:38 得分 0

楼上的说得可能不对吧?  
  main里面的类不一定要是static的哦。Top

4 楼CNSC(王)回复于 2003-10-04 09:27:46 得分 0

你自己实验一下就可以了:  
          public   class   Test{  
  class   name{  
  void   print(){System.out.println("Test");}  
  }  
  public   static   void   main(String[]   args)  
  {  
  name   n=new   name();  
  n.print();  
  }  
  }  
  这个程序产生的错误与他的程序产生了同样的错误。  
  而加上static   后却是正确的  
  Top

5 楼tomcatjava(小鱼儿)回复于 2003-10-04 09:54:17 得分 0

严重同意   CNSC(王)   的说法!!Top

6 楼JCC0128(代码写到手抽筋)回复于 2003-10-04 11:54:33 得分 0

严重同意   CNSC(王)   的说法!!  
  Top

7 楼JCC0128(代码写到手抽筋)回复于 2003-10-04 11:59:37 得分 0

public   class   Test{  
  class   name{  
  void   print(){System.out.println("Test");}  
  }  
  public   static   void   main(String[]   args)  
  {  
  name   n=new   name();  
  n.print();  
  }  
  }  
  如果用这种方式(类中其它类作成员)  
  name   n=new   name();只实例化了n,但n中的name只是一个类型,还是个空值。最好声明一个name类型的变量,再实例化它。进行调用Top

8 楼zhch200()回复于 2003-10-04 12:20:59 得分 0

你们只说怎么做,可不可以告诉我为什么.Top

9 楼fxxxgxxx(我说我是基地组织的,没人信呀.....)回复于 2003-10-04 13:52:46 得分 0

main方法是static的,他所调用的方法,变量也必须是static的。  
  main方法是程序运行的入口,这时类的对象还没有实例化,所以必须是static的,无需实例化就可以运行。Top

10 楼JCC0128(代码写到手抽筋)回复于 2003-10-04 14:01:11 得分 0

这属于面向对象的内容,多看看面向对象的书~Top

11 楼prosong(prosong)回复于 2003-10-04 22:28:58 得分 0

如果不把内部类声明为   static  
  应该向如下把它new出来:  
   
  public   class   T{  
  int   t1   =   0;  
  public   class   A{  
  int   i   =   0;  
  }  
   
  public   static   void   main(String   args[]){  
  T   t   =   new   T();  
  A   a   =   t.new   A();   //   这行  
  a.i   =   10;  
  System.out.println(a.i);  
  }  
  }Top

12 楼lihenggg(李清扬)回复于 2003-10-05 18:11:56 得分 0

就在贴出这个贴之后半小时,小弟突然茅塞顿开,自己解决了问题。终于理解到了这其中的原由.但还是衷心谢谢大家的帮助!!!把分给了cnsc(王).其他关心这个贴的朋友对不起了.Top

相关问题

  • 菜鸟
  • 菜鸟
  • 菜鸟
  • 菜鸟菜问!
  • 菜鸟菜问
  • 菜菜鸟问!
  • 菜鸟问题,帮帮我把,怎么试也出不来,一晚上了!!
  • 救救我吧,我被一个很弱的问题困住了!!!!!!!!!!!
  • 菜鸟问题 (菜鸟问)
  • 菜鸟中菜鸟提问

关键词

  • 调用
  • 实例
  • 程序
  • 类
  • 方法
  • static
  • main
  • args
  • print
  • println

得分解答快速导航

  • 帖主:lihenggg
  • CNSC

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo