当前位置:  技术问答>java相关

一个简单的程序,编译可以通过但是,不出现结果,错误提示为无数个at Test.<init>(TestNonStatic.java:8),怎么回事

    来源: 互联网  发布时间:2015-03-14

    本文导语:  一个简单的程序,编译可以通过但是,不出现结果,错误提示为无数个at Test.(TestNonStatic.java:8),怎么回事 class Test {   Test() {}   Test t= new Test();   int fact(int n) {     if(n>0) {       return t.fact(n-1)*n;//递归...

一个简单的程序,编译可以通过但是,不出现结果,错误提示为无数个at Test.(TestNonStatic.java:8),怎么回事

class Test {
  Test() {}
  Test t= new Test();
  int fact(int n) {
    if(n>0) {
      return t.fact(n-1)*n;//递归调用类Test内的fact函数
    }    
    else {
      return 1;
    }  
  }
}
public class TestNonStatic {
  public static void main(String[] args) {
    Test t1=new Test();
    int m=t1.fact(5);
    System.out.println(m);
  } 


|
对象初始化出现无穷递归调用。

语句Test t= new Test()是对象初始化语句,这种语句在构造一个新的Test对象会被调用。
而该语句本身又要求构造新的Test对象。这样构造新对象和对象初始化相互调用,导致无穷递归

|
把Test t = new Test();及
把return t.fact(n-1)*n 改成return fact(n-1)*n;

|
just so , clarity。

    
 
 

您可能感兴趣的文章:

  • 请问gdb是不是只能调试gcc编译的程序,在unix下用其它编译器编译的程序是不是不一定能用gdb调试的?
  • 关于arm交叉编译器4.3.3编译程序报错,但是3.4.5却能编译通过的问题
  • tc编译的dos程序和vc编译的win32控制台程序的异同
  • JB下,我的程序编译得好慢!请问用什么方法编译才可以快一点?或编译顺序改变一下?
  • 在cygwin编译驱动程序要不要交叉编译?
  • 编译JAVA程序的时候,如果需要的JAR不在CLASSPATH,有什么办法能成功编译吗???
  • 用JCreator写了一个小程序,有十几个class,当修改某个文件重新编译,javac并没有编译修改的文件,请问要如何做javac才会重新编译所有的
  • rethat系统以前是32位的 现在想用64位的,ESQL编译C程序,需要加什么编译参数啊?
  • 在网上下的许多ubuntu程序都需要编译,那应该用什么编译?
  • 怎么查看arm平台上的程序是用那个版本的交叉编译器编译的????
  • 在linux下用proc编译程序,'*.pc'文件编译后成了'*.c?',多了一个问号?
  • 请问在linux下编译程序怎么设置编译器字节对齐?
  • 谁编译过PLX9054 Linux的驱动程序,我给100分教我编译和安装??
  • 请问:在proc程序中,若里面有模板的类型,能不能通过预编译啊,(编译时老是无法识别类型,我的头文件都已包含了)
  • 使用gcc编译器进行代码编译出来的程序是否遵循gpl协议
  • 用-g编译器选项编译程序就在makefile中按下面样子的加进去吗:
  • unix环境高级编程》源程序编译的讨论,编译成功、不成功的都请进!!!
  • 菜鸟问题: redhat linux 编译一个最简单的c程序, 其中包含了<studio.h>头文件,但在gcc编译时,提示找不到studio.h文件,请问各位大大
  • 有人说用vc++写的程序,代码可以直接拿到linux下找编译器,就可以编译,是真的吗?
  • 如果重新编译了.so文件后,但程序运行结果还是编译前的情况,大概是什么问题呢?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在客户端是否可以通过SSH关闭正在服务器上后台运行的应用程序!
  • Linux用户态可以通过同一段程序创建多个定时器么?
  • 这个小程序怎么可以编译通过,但是不能运行?
  • 以前通过“apt-get remove”这样的方式删除程序时总会提示是否删除,有没有什么办法可以直接删掉而不提示的?
  • codeblocks8.02 for linux,程序可以编译通过,但是通过右键“查找fopen函数的声明”或“实现”,都是提示“没有找到:fopen”,为什么
  • 源程序可以编译通过,但里面的String s 全都是空的,这是怎么回事?
  • 在本地测试通过的EJB,如何把测试程序放在另外一台机器上,也可以测试通过。
  • 其他工具都可以通过的程序在JB里总是报错,为什么?
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Web服务器/前端 iis7站长之家
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • linux下通过crond实现自动执行程序
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • http协议介绍,文件上传分析及程序举例
  • 在java控制台程序中,可以用System.exit(0);使用一个程序终止,那么在servlet中如何使一个servlet程序终止呢?
  • 程序员赚钱致富的6种方法
  • 程序调用脚本,脚本启动另一个程序,如何让原始程序彻底释放资源?
  • HASH查找的程序实现及性能分析
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • linux下,一个程序如何向另一个程序发送消息,另一个程序如何接收


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3