25个类对象的数组

时间:2014-06-23 20:12:58

标签: java arrays object parameters

我正在尝试创建一个可以容纳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]);
    }
}

5 个答案:

答案 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