首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化新对象时的StackOverflow

初始化新对象时的StackOverflow
EN

Stack Overflow用户
提问于 2015-09-03 08:34:59
回答 4查看 126关注 0票数 0

我不知道为什么会发生这种情况,它似乎在创建新对象和初始化对象之间处于一个恒定的循环中。

代码语言:javascript
复制
public class App {

Character hero = new Character();
charCreation charCreation = new charCreation();

public static void main(String [] args){
    App app = new App();
    app.run();
}
    void run(){
        charCreation.charCreate();
         
    }
    



}

在这里,App创建了一个新的charCreation对象,即

代码语言:javascript
复制
import java.util.Scanner;

class charCreation extends App {

Scanner skan = new Scanner(System.in);

protected  void charCreate(){
    
......

这是一个错误

线程"main“java.lang.StackOverflowError中的异常 在charCreation.(charCreation.java:3) 应用程序(App.java:5) 在charCreation.(charCreation.java:3) 应用程序(App.java:5) .

它还在不停地

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-09-03 08:38:46

当您创建CharCreation (为您固定的CamelCase )实例时,它还将初始化从超类App继承的所有东西(调用超类构造函数、初始化所有实例字段等)。其中一部分是创建CharCreation的另一个实例(以及Character的一个实例)。

无限循环。

也许您希望从App中删除该实例字段,并将其改为run中的局部变量。

票数 4
EN

Stack Overflow用户

发布于 2015-09-03 08:39:49

charCreation类扩展了App,因此要创建它,需要调用超类(App)的构造函数。要构造App超类,需要构造App的字段,包括一个new charCreation(),所以它会循环。

您需要将新charCreation对象的创建与App实例的创建分离开来。

票数 2
EN

Stack Overflow用户

发布于 2015-09-03 08:39:10

您有一个App类,其字段类型为CharCreation

CharCreation扩展了App,所以当您初始化CharCreation对象时,它将初始化字段charCreation。因此,当charCreation字段初始化时,它将初始化一个新的CharCreation对象,依此类推。

这基本上是您必须解决的设计问题,我认为CharCreation类不应该扩展App类,而charCreate应该返回一个Character

代码语言:javascript
复制
public class App {
    Character hero = new Character();
    CharCreation charCreation = new charCreation();

    void run(){
        hero = charCreation.charCreate();

    }
}

public class CharCreation {
   public Character charCreate() {
       /* creates and returns the hero */
   }
}

附带说明:

  • 总是用与java约定相匹配的第一个大写字母命名类,CharCreation而不是charCreation
  • 不要使用Character来命名类,它是JDK中已经存在的类(char的对象对应项)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32370761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档