从java中的多个方法输出数据

时间:2014-02-27 17:20:03

标签: arrays string object methods

目前该计划正在列出太阳系中的行星。进入solarsystem的每个行星都有一个位置计数器添加位置++

列出所有行星之后我想向SystemPrintln发表声明说,太阳系中有这么多行星。我不应该只能返回位置;对此?

此时结果是在toString中,所以要添加最后一行,说明行星的数量,我该怎么做?

  1. 我可以在toString中添加第二个方法“position”吗?
  2. 我可以在驱动器类的system.out.println语句中返回位置吗?
  3. 类星球:     包行星;

    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);
    
        }
    
    }
    

2 个答案:

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

}
}