我正在尝试创建一个可以容纳25个对象的类型测验对象,但每当我打印数组时,我会得到一个指针位置(随机数字“Quiz @ 471e30”)而不是我的字符串问题。
以下是测验类:
public class Quiz {
private static String questions;
public Quiz (String ask){
questions=ask;
}
public String getQuestions(){
return questions;
}
public void setQuestions(String ask){
questions=ask;
}
}
这是主要课程:
public class QuizTime {
public static void main(String[] args) {
Quiz[] z= new Quiz[25];
z[0]=new Quiz("what is your name?");
System.out.println(z[0]);
}
}
答案 0 :(得分:1)
在toString
类中实现方法Quiz
并返回要打印的相应字符串。
public String toString() {
return questions;
}
当然,这会使您的getQuestions()
方法变得多余,因此您也可以在toString()
中调用该函数,或者使用明确调用getQuestions()
的其他答案之一。< / p>
public String toString() {
return getQuestions();
}
答案 1 :(得分:0)
假定您现有的作品,您需要向对象引用添加方法调用。像z [0] .getQuestion()之类的东西。或者,您可以定义一个cusom .toString()方法来返回问题。
答案 2 :(得分:0)
如果没有toString()
方法,Java会自动使用System.out.println()
打印出类的内存地址。您可以实施toString()
或执行此操作:
System.out.println(z[0].getQuestions());
答案 3 :(得分:0)
z [0]是测验对象,而您尝试打印的是名为String的字符串。请尝试改为:
System.out.println(z[0].getQuestions());
或者,您可以覆盖toString()
方法,如果您输入了该方法,则会打印问题:
System.out.println(z[0]);
答案 4 :(得分:0)
除了来自Object#toString()
的字符串,Javadoc将其描述为 -
类
toString
的{{1}}方法返回一个字符串,该字符串由对象为实例的类的名称,符号字符“@”和无符号的十六进制表示形式组成。对象的哈希码。换句话说,此方法返回一个等于值的字符串:Object
您还有getClass().getName() + '@' + Integer.toHexString(hashCode())
字段,可将static
限制为一个(且仅限一个)问题。应该是,
Quiz