如何在另一个类中打印此for循环,如何返回其值?

时间:2014-12-09 01:46:42

标签: java arrays loops for-loop printing

好的,所以我有这个类创建了一个学生配置文件数组,其中五个使用多参数构造函数,而最后一个使用零参数构造函数。然后我将数组的每个值设置为一个学生配置文件,我使用for循环遍历数组。

我的问题是如何使用数组将该值返回给方法,以便我可以从另一个类中调用它来打印?我应该采取什么策略,因为我不确定如何使用toString()来做这件事,而且我对所有这些都是新手。可能不是最好为此做System.out.println,但这就是我知道该怎么做。

此外,当我编译它时说它们是不兼容的类型。这就是为什么这不会经历,我不知道如何把它放回字符串而不是int(?)

public class Applicants
{
   private Application[] applicant;
   public String Applicants()
   {
    Application student1 = new Application("Blair", "C", "Bass");
    Application student2 = new Application("Daniel", "R", "Humphrey");
    Application student3 = new Application("Charlie", "L", "Trout");
    Application student4 = new Application("Damascus", "L", "Roberto");
    Application student5 = new Application("Sofia", "M", "Montrone");
    Application student6 = new Application();

    applicant[0] = student1;
    applicant[1] = student2;
    applicant[2] = student3;
    applicant[3] = student4;
    applicant[4] = student5;
    applicant[5] = student6;

    for (int index = 0; index < applicant.length; index++)
    {   
         return System.out.println(applicant[index]);
    }

}

}

3 个答案:

答案 0 :(得分:0)

您可以更改方法签名以返回数组,并初始化数组。 Java方法名称以小写字母开头(按照惯例)。像,

public Application[] getApplicants() {
    return new Application[] {
            new Application("Blair", "C", "Bass"),
            new Application("Daniel", "R", "Humphrey"),
            new Application("Charlie", "L", "Trout"),
            new Application("Damascus", "L", "Roberto"),
            new Application("Sofia", "M", "Montrone"),
            new Application()
    };
}

答案 1 :(得分:0)

添加&#39;打印&#39; Application类的方法。该类将打印应用程序的特定实例的细节。然后添加一个名为&#39; print&#39;到您的Applications类。这个方法应该有一个类似于你上面的循环,但内部应该是applications[i].print();

现在你可以从主程序中说出这样的话:

Applications apps = new Applications();
apps.print();

这里的要点是让Application类处理Application的细节。 Applications类应该处理管理应用程序组的详细信息。

编辑 - 最后,不要让应用程序数组离开Applications类。如果你这样做,你将无法控制它们的使用。

答案 2 :(得分:0)

方法 public String Applicants()期望返回对象类型String,但 System.out.println(..)方法不返回任何对象(void )。这就是您遇到编译错误的原因。

我建议您对代码进行以下更改:

1-更改方法public String Applicants()到构造函数以填充Application []申请者数组。或者将方法名称更改为 public void populateApplication()以避免混淆并具有有意义的名称。

2-在方法 populateApplication()中,您只需要使用新值填充数组。

3-创建新方法以按索引返回所有申请人或申请人:

public Application[] getAllApplications()
{
   return applicant;
}

并按索引或其他标准(例如:姓名)返回:

public Application getApplicationByIndex(int index)
{
   if (index < applicant.length) //make sure the index is in the array boundary.
   {
       return applicant[index];
   }
   return null;
}

调用者将决定如何处理返回结果,即。打印,修改等

希望有所帮助。