Java 在这种情况下,是否需要动态添加对象?
所以我被要求为我的课程创建一个简单的太阳系模拟器。我们的讲师就建构师的结构和我们课程的方法制定了非常具体的指导方针 我已经思考了几个小时,不明白如果没有动态对象分配,我怎么能让它工作。我想将行星添加到Planet[]数组中,以便对它们进行索引,但我不知道应该如何创建对象,因为考虑到一个要求,即在用户键入“完成”之前,您可以将行星添加到系统中 行星类不是要求之一,但他建议我们使用一个可以存储单个行星变量并对其进行计算的类。而数据应存储在主SolarSystem类中。我们还需要使用FantasySolarSystem类从用户读取数据并处理输出Java 在这种情况下,是否需要动态添加对象?,java,Java,所以我被要求为我的课程创建一个简单的太阳系模拟器。我们的讲师就建构师的结构和我们课程的方法制定了非常具体的指导方针 我已经思考了几个小时,不明白如果没有动态对象分配,我怎么能让它工作。我想将行星添加到Planet[]数组中,以便对它们进行索引,但我不知道应该如何创建对象,因为考虑到一个要求,即在用户键入“完成”之前,您可以将行星添加到系统中 行星类不是要求之一,但他建议我们使用一个可以存储单个行星变量并对其进行计算的类。而数据应存储在主SolarSystem类中。我们还需要使用FantasySo
import java.util.*;
public class SolarSystem{
public static final int PLANET_MAX = 10;
public static void main(String[] args){
String systemName;
Planet[] planetArray = new Planet[PLANET_MAX]; //const for array size seemed easier than dynamically allocating memory
SolarSystem mySystem = new SolarSystem("Boris");
// below is testing the addplanet function
addPlanet("Jimmy", 10, 100);
System.out.print(Planet[0].planetName);
}
public SolarSystem(String name){
systemName = name;
}
public static void addPlanet(String planetName, double planetMass, double planetDistance){
Planet newPlanet = new Planet(planetName, planetMass, planetDistance);
// all i want to do here is add planets on to the array
Planet[0] = newPlanet;
}
}
此处的行星等级仅供参考:
public class Planet{
private String planetName;
private double planetMass;
private double planetDistance;
private double planetPeriod;
public Planet(String planetName, double planetMass, double planetDistance){
this.planetName = planetName;
this.planetMass = planetMass;
this.planetDistance = planetDistance;
}
//sets the period for the current object
public static calculatePeriod(double planetDistance){
double period = Math.sqrt(planetDistance*planetDistance*planetDistance);
setPlanetPeriod(period);
}
//accessors
public String getPlanetName(){
return planetName;
}
public double getPlanetMass(){
return planetMass;
}
public double getPlanetDistance(){
return planetDistance;
}
public double getPlanetPeriod(){
return planetPeriod;
}
//mutators
public void setPlanetName(String planetName){
this.planetName = planetName;
}
public void setPlanetMass(double planetMass){
this.planetMass = planetMass;
}
public void setPlanetDistance(double planetDistance){
this.planetDistance = planetDistance;
}
public void setPlanetPeriod(double planetPeriod){
this.planetPeriod = planetPeriod;
}
}
任何帮助都将不胜感激
编辑:我只想写它并测试它,但我得到的错误是,在引用对象数组的地方找不到符号
edit2:修复了从静态方法访问非静态方法的问题,但在向数组添加对象时仍然存在问题(还有3个找不到符号错误,systemName=name;我两次都使用Planet[0])在java中研究静态成员提示:您的方法
setPlanetPeriod(double planetPeriod)
不是静态的,因此不能从另一个静态方法调用它calculatePeriod()