目前该计划正在列出太阳系中的行星。进入solarsystem的每个行星都有一个位置计数器添加位置++
列出所有行星之后我想向SystemPrintln发表声明说,太阳系中有这么多行星。我不应该只能返回位置;对此?
此时结果是在toString中,所以要添加最后一行,说明行星的数量,我该怎么做?
类星球: 包行星;
public class Planet {
String name;
int moons;
public Planet(String name, int moons)
{
this.moons = moons;
this.name = name;
}
public String toString() {
return "The Planet " + name + " Has " + moons + " Moon(s) \r\n ";
}
}
Class SolarSystem:
package planets;
public class SolarSystem {
private Planet[]planets;
private int position = 0;
public SolarSystem(int size) {
planets = new Planet[size];
}
public void add(Planet planet) {
planets[position] = planet;
position++;
}
public String toString(){
String result = "";
for(int i = 0; i < planets.length; i++){
result += planets[i].toString();
}
return result;
}
}
班级司机: 包行星;
public class Driver {
public static void main(String[]args) {
Planet mercury = new Planet ("Mercury", 0);
Planet venus = new Planet ("Venus", 0);
Planet earth = new Planet ("Earth", 1);
Planet mars = new Planet ("Mars", 2);
Planet jupiter = new Planet ("Jupiter", 67);
Planet saturn = new Planet ("Saturn", 62);
Planet uranus = new Planet ("Uranus", 27);
Planet neptune = new Planet ("Neptune", 14);
Planet pluto = new Planet ("Pluto", 5);
SolarSystem solarSystem = new SolarSystem(9);
solarSystem.add(mercury);
solarSystem.add(venus);
solarSystem.add(earth);
solarSystem.add(mars);
solarSystem.add(jupiter);
solarSystem.add(saturn);
solarSystem.add(uranus);
solarSystem.add(neptune);
solarSystem.add(pluto);
System.out.println(solarSystem);
}
}
答案 0 :(得分:0)
对于你的班级,你必须返回位置变量。
public int sumPlanets(){
return position;
}
并在你的方法toString中使用:
public String toString(){
return Integer.toString(sumPlanets());
}
但我建议只使用该位置来返回总元素
public String toString(){
return position;
}
在你的代码中:
package planets;
public class SolarSystem {
private Planet[]planets;
private int position = 0;
public SolarSystem(int size) {
planets = new Planet[size];
}
public void add(Planet planet) {
planets[position] = planet;
position++;
}
public String toString(){
return Integer.toString(sumPlanets());
}
public int sumPlanets(){
return position;
}
}
答案 1 :(得分:0)
为了打印出行星的总数,我使用了位置变量,每次制作一个行星物体时,它就会增加一个。
position++
所以打印这个我添加了
System.out.println("You Have " + position + " Planets In Your Solar System");
直接在循环之后所以它将以总量打印一次。
全班最终都是这样的。
package planets;
public class SolarSystem {
private Planet[]planets;
private int position = 0;
public SolarSystem(int size) {
planets = new Planet[size];
}
public void add(Planet planet) {
planets[position] = planet;
position++;
}
public String toString(){
String result = "";
for(int i = 0; i < planets.length; i++){
result += planets[i].toString();
}
System.out.println("You Have " + position + " Planets In Your Solar System");
return result;
}
}