【发布时间】:2018-06-09 08:51:43
【问题描述】:
仅供参考,我上过一堂关于 Java 的高中课程,所以这个问题应该很容易回答。我只是在想办法将类方法(构造函数)作为新对象调用而不为参数输入新值时遇到了麻烦。构造函数如下所示:
public Skills(int courage, int intelligence, int stamina, int crafting,
int blacksmithery, int herbalism, int slingSkill,
int bowSkill, int swordSkill, int armor, int stealth, int
lifeForceSkill){
this.courage = courage;
this.intelligence = intelligence;
this.stamina = stamina;
this.crafting = crafting;
this.blacksmithery = blacksmithery;
this.herbalism = herbalism;
this.slingSkill = slingSkill;
this.bowSkill = bowSkill;
this.swordSkill = swordSkill;
this.armor = armor;
this.stealth = stealth;
this.lifeForceSkill = lifeForceSkill;
}
当我建立它时,我的主要方法是这样做:
Skills skills = new Skills(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
将所有级别设置为 1,然后我就有了以后可以使用的对象技能。 (我是不是把构造函数和对象这两个术语弄混了?如果错了,就在你的脑海里把它们全部换掉,我想我至少是一致的)。
问题是我在技能类中有一个 toString() 方法,我想在主类中调用一个单独的方法。
else if (optionChoice.equalsIgnoreCase("View Skills")){
Skills skills = new Skills();
System.out.println(skills.toString());
break;
}
当然,我在这里创建的对象会引发错误,因为我不能只写 Skills();没有为参数输入所有十二个值。那么,当我无法为其创建对象时,如何从 Skills 类中调用该方法呢?值不改变的功能是必不可少的,因为它们是可变的并且随着程序的变化而变化,我不能为它们输入任何值。
我知道这可能是一个超级基本的问题,但这是我的水平,所以任何超级基本的答案都会有所帮助。不应该占用你太多时间。提前致谢!
【问题讨论】:
-
这在 stackoverflow 上可能会更好,因为它的实现级别更高。问题,您是否打算创建一个新的
Skills对象只是为了做一个toString()?如果您对一开始创建的 on 进行更改,即使您要修复编译错误,您也不会看到它们。此外,System.out.println(skills)也同样有效,因为println()可以采用Object。对于Object,它会自动调用toString()。
标签: java methods constructor object