【发布时间】:2017-02-13 22:44:51
【问题描述】:
我很难找到如何编写我的 toString 方法来获取程序中每个熊的输出。我希望输出显示“Race - Points - TotalPoints”。但是即使其余代码似乎可以编译,也无法正确处理。
我需要在两个类中定义 toString 还是我缺少什么?我检查了其他几个类似的问题,这似乎是一种替代方法?但如何最有效地实施呢?
首先关闭熊类:
import java.util.ArrayList;
public class Bear {
public static void main(String[] args) {
Bear b = new Bear("Sebastian", 100, "Brownbear");
ArrayList <Bear> bears = new ArrayList<Bear>();
bears.add(b);
}
private String name;
private int points;
private String race;
public Bear(String name, int points, String race) {
this.name = name;
this.points = points;
this.race = race;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRace() {
return race;
}
public void setRace(String race) {
this.race = race;
}
public int getInitialPoints() {
return points;
}
public int getPoints() {
int oldPoints = points;
points /= 2;
return oldPoints;
}
}
其次是 BearCollection 类:
import java.util.ArrayList;
public class BearCollection {
ArrayList <Bear> bears = new ArrayList<Bear>();
int totalPoints = 0;
public void add (Bear b) {
for (Bear inCollection : bears) {
if(b.getName().equals(inCollection.getName())) {
return;
}
}
for (Bear inCollection : bears)
if (b.getRace().equals(inCollection.getRace())) {
for(int i = bears.size(); i > 0; i --) {
if(bears.get(i).getRace().equals(b.getRace())) {
b.getPoints();
i = 0;
}
}
}
totalPoints += b.getInitialPoints();
bears.add(b) ;
}
public String toString(){
return ;
}
【问题讨论】:
-
恕我直言,您并没有认真告诉我们您在使用
return ;时遇到问题,是吗? -
当然我知道我的 tostring 是完全空白的,我只是不明白我应该放什么以获得正确的输出。我只是把 toString 方法放在那里,以显示我认为它应该去的地方。 (但我是一个完整的初学者)
-
您已经知道如何遍历您的熊列表,因为您已经在代码中这样做了。那么是什么阻止了你迭代它并从当前的熊迭代中打印你想要的任何信息呢?
-
您是否遇到了一些具体问题?还是您要求我们为您编写代码?