-6

我需要在一行中编写数组并通过几个不同的类进行传递。到目前为止,这是我的代码。我将如何使阵列全球化?我很困扰。这就是我通过在线课程学习的方式。公共类 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)
{

     }
}
4

3 回答 3

1

两种选择:

  1. 使它们成为您的一个类的静态成员。
  2. 每次您在不同的地方需要它们时,只需将数组作为参数传递。
于 2013-05-27T21:04:56.703 回答
0

您可以将数组设为公共静态,以便全局访问。静态成员是类成员,不需要对象实例化。

看来您想创建一个常量列表(行星数组肯定是这样的)。您可以为此使用枚举。

public enum Planets {

    MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, PLUTO

}

编辑:在这个例子中考虑 Planet 枚举

http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

于 2013-05-27T21:23:12.317 回答
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
}
于 2013-05-27T21:13:25.527 回答