我需要在一行中编写数组并将其传递到几个不同的类中。到目前为止,这是我的代码。我将如何使阵列全球化?我很迷茫。 这是我通过在线课程教授的方式。 公共类GravityV1 {
String[] planet= {"Mercury", "Venus","Earth","Mars", "Jupiter", "Saturn", "Uranus","Pluto"};
int[] diameter = { 4876, 12107, 12755, 6794, 142983, 120536, 51117, 49527, 2390};
double[] mass= { 3.30e23,4.87e24,5.97e24,6.42e23,1.90e27,5.69e26, 8.66e25, 1.03e26, 1.31e22};
public double calcgravity(double g, double r, double m)
{
g=(6.67e-11*m)/r;
return g;
}
public static void printdata()
{
System.out.println ("Planetary Data");
System.out.println("Planet");
System.out.printf("%8s", "Diameter (Km)");
System.out.printf("%8s", "Mass (Kg)");
System.out.printf("%10s", "g(ms^-2)");
System.out.println("----------------------------------------------------------------------------------------------------------------------------------");
for (int index=0; index<9; index++)
{System.out.println( planet[index]);
System.out.printf("%8f", diameter[index]);
System.out.printf("%8f", mass[index]);
}
}
public static void main(String[] args)
{
}
}
答案 0 :(得分:1)
两个选项:
答案 1 :(得分:0)
通常的模式是:public static final
。这是一个全局可访问且不可修改的数组引用:
public class GravityV1 {
public static final String[] PLANETS = { "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Pluto"};
public static final int[] DIAMETERS = { 4876, 12107, 12755, 6794, 142983, 120536, 51117, 49527, 2390};
public static final double[] MASSES = { 3.30e23, 4.87e24, 5.97e24, 6.42e23, 1.90e27, 5.69e26, 8.66e25, 1.03e26, 1.31e22};
// ...
请注意,命名约定要求常量的资本名称(最终静态)。将三个属性存储在三个不同的阵列中并不是最好的设计。你应该引入一个新的类来保存每个行星的属性。像
这样的东西public class Planet {
private String name;
private double mass;
private int diameter;
// Constructor
// getters for the three fields
}
答案 2 :(得分:0)
您可以将数组设为公共静态,以使其可全局访问。静态成员是类成员,不需要对象实例化。
看起来你想要创建一个常量列表(行星阵列肯定是这样的)。你可以使用枚举。
public enum Planets {
MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, PLUTO
}
编辑:在本例中考虑Planet enum
http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html