我正在使用这个程序,它访问另一个类以进行变量命名。基本上,它有组织名称,他们每年赚多少,以及他们是否盈利。最后,我们需要打印每个组织的所有信息。目前,它正在发挥作用,但必须有一种方法将其缩短为for语句。
$project
答案 0 :(得分:1)
覆盖Organization.toString()
,只覆盖println(organization)
。
答案 1 :(得分:1)
扩展我的评论,我假设你有一个看起来像这样的课程:
class Organization {
String name;
int revenue; //guessing the type
double profit; //guessing the type
}
因此,您可能需要一个组织列表:
List<Organization> orgs = ...; //initialize the list of your 6 organizations here
然后你可以编写你的代码(一种可能的方式):
boolean first = true;
for( Organization o : orgs ) {
//if it's not the first entry then print an empty line first
if( !first) {
out.println();
}
out.println(o.name);
out.println("$" + o.revenue);
out.println("For Profit: " + o.profit);
first = false;
}
请注意,还有其他方法可以打印,例如使用Java 8流或其他实用程序,但我会留下那些供您探索。
答案 2 :(得分:1)
toString()
是一种调试目的方法
您应该避免使用特定格式。在Organization
中,您可以引入一种方法来打印当前实例:
public void print()
out.println(name);`
out.println("$"+revenue);`
out.println("For Profit: "+profit);`
out.println();`
}
现在,您可以在以下每个方法上调用该方法:
Organization1.print();
Organization2.print();
Organization3.print();
Organization4.print();
Organization5.print();
Organization6.print();
或者更好的是,将它们添加到List
中并迭代打印每一个:
List<Organization> organizations = Arrays.asList(Organization1, Organization2, ...);
organizations.stream().forEach(Organization::print);
答案 3 :(得分:1)
作为覆盖toString()
的替代方法,请考虑创建一个方法,将类的摘要作为String
返回:
public String getSummary() {
StringBuffer sb = new StringBuffer();
sb.append(name);
sb.append("\n$"+revenue);
sb.append("\nFor Profit: "+profit);
return sb.toString();
}
然后,您可以简单地遍历组织以打印摘要:
for(Organization organization: organizationList)
System.out.println(organization.getSummary());
答案 4 :(得分:0)
使用Class.forName(&#34; ClassDemo&#34;)来调用类并获取名称,收入和利润
例如在for循环中
System.out.println(Class.forName("Organization"+i).name)
System.out.println(Class.forName("Organization"+i).revenue)
System.out.println(Class.forName("Organization"+i).profit)
阅读以下文档以获取更多信息 https://www.tutorialspoint.com/java/lang/class_forname_loader.htm
答案 5 :(得分:0)
我认为你可以重写所有类Organization1-6来扩展一个名为Organization的父类,它有一个方法show()和名称,收入,利润属性,并且在show()中你可以打印所有信息你想要的,子类的每个对象也可以调用这个方法