-1

私はイントロ プログラミング クラスに参加しています。現在取り組んでいるラボでは、2 つのクラスが必要で、1 つのクラス "エネルギー" からメソッドをプルし、"エネルギー ドライバー" で実行する必要があります。メソッド (testOne、testTwo、testThree) を「EnergyDriver」に呼び出すのに問題があります。

   public class EnergyDriver

    {  
   public static void main(String [] args)
     {

  System.out.println(mass1 + " kiolograms, " + velocity1  +
                     "meters per second: Expected 61250," + " Actual " + kineticE1);

  System.out.println(mass2 + " kiolograms, " + velocity2  +
                     "meters per second: Expected 61250," + " Actual " + kineticE2);

   System.out.println(mass3 + " kiolograms, " + velocity3 +
                     "meters per second: Expected 61250," + " Actual " + kineticE3);

    }
    }


  public class Energy

 {  
      public static void main(String [] args)
    {


  public double testOne;
  {
 double mass1;
 double velocity1;
 double holderValue1;
 double kineticE1;

 mass1 = 25;
 velocity1 = 70;

 holderValue1 = Math.pow(velocity1, 2.0);    
 kineticE1   = .5 *holderValue1 * mass1;

 }

  public double testTwo;
  {
 double mass2;
 double velocity2;
 double holderValue2;
 double kineticE2;

 mass2 = 76.7;
 velocity2 = 43;

 holderValue2 = Math.pow(velocity2, 2.0);    
 kineticE2    = .5 *holderValue2 * mass2;


 }

  public double testThree;
  {
 double mass3;
 double velocity3;
 double holderValue3;
 double kineticE3;

 mass3 = 5;
 velocity3 = 21;

 holderValue3 = Math.pow(velocity3, 2.0);    
 kineticE3    = .5 *holderValue3 * mass3;


 }
}
4

2 に答える 2

1

いずれかのクラスにmainメソッドを1 つだけ含める必要があります。別のクラスからメソッドを呼び出すには、そのクラスのオブジェクトを作成して、それぞれのメソッドを呼び出します。もう 1 つの方法は、呼び出し元のメソッドを静的にして、 Classname.Methodnameを介してそのメソッドにアクセスできるようにすることです。

 public class EnergyDriver
 {  
   public static void main(String [] args)
   {
     Energy energy=new Energy();
      System.out.println(mass1 + " kiolograms, " + velocity1  +
                 "meters per second: Expected 61250," + " Actual " + energy.testOne());

      System.out.println(mass2 + " kiolograms, " + velocity2  +
                 "meters per second: Expected 61250," + " Actual " + energy.testTwo());

       System.out.println(mass3 + " kiolograms, " + velocity3 +
                 "meters per second: Expected 61250," + " Actual " + energy.testThree());

 }
 }
 class Energy
 {  

 public double testOne()
 {
    double mass1;
    double velocity1;
    double holderValue1;
    double kineticE1;

    mass1 = 25;
    velocity1 = 70;

    holderValue1 = Math.pow(velocity1, 2.0);    
    kineticE1   = .5 *holderValue1 * mass1;

    return kineticE1;
 }

  public double testTwo()
 {
double mass2;
double velocity2;
double holderValue2;
double kineticE2;

mass2 = 76.7;
velocity2 = 43;

holderValue2 = Math.pow(velocity2, 2.0);    
kineticE2    = .5 *holderValue2 * mass2;

return kineticE2;
 }

public double testThree()
{
double mass3;
double velocity3;
double holderValue3;
double kineticE3;

mass3 = 5;
velocity3 = 21;

holderValue3 = Math.pow(velocity3, 2.0);    
kineticE3    = .5 *holderValue3 * mass3;

return kineticE3;
}
}

このコードを使用して、Kinetic Engergy 1,2,3 の値を取得できます。

以下のコードを使用して、1 つのメソッドのみを使用して、異なる引数を指定して異なる値を計算することもできます。

 public class EngergyDriver 
 {
  public static void main(String [] args)
  {
     Energy energy=new Energy();
     double mass=25;
     double velocity=70;         
      System.out.println(mass+ " kiolograms, "+velocity+"meters per second: Expected  61250," + " Actual " + energy.testOne(mass,velocity));  

    }
}
  class Energy
{  

 public double testOne(double mass, double velocity)
 {
    double mass1;
    double velocity1;
    double holderValue1;
    double kineticE1;

    mass1 = 25;
    velocity1 = 70;

    holderValue1 = Math.pow(velocity1, 2.0);    
    kineticE1   = .5 *holderValue1 * mass1;

    return kineticE1;
 }

 }
于 2013-10-02T03:11:16.197 に答える
0

Java プログラムには単一のエントリ ポイントがあり、それはmainメソッドを介して行われます。したがって、単一のプロジェクトでは、1 つのクラスのみが main メソッドを持つ必要があり、実行時にコンパイラがそれを検索する場合。
静的メソッドは非静的メソッドにアクセスできないため、メインは静的であるため、作成しない限りテストワン 2 または 3 とそのタイプのオブジェクトにアクセスできないことに注意してください。main メソッドでEnergy e = new Energy()は、キーワード static like で宣言されていないメソッドにアクセスできますe.testone()


ただし、非静的メソッドはClassname.Method名前を介して静的メソッドにアクセスできることに注意してください。これは、キーワード static はそのメソッド/変数の単一のコピーのみが存在することを伴うため、コピーが 1 つしか存在しないため、それにアクセスするためのオブジェクトは必要ありません。

Lynda.com の Java ビデオを見るか、Java Head First および Java How To Program (Deitel、Deitel) の本を読んで Java の知識を高めることをお勧めします。
また、SO検索でこのような他の質問がたくさんあります

于 2013-10-02T03:51:22.260 に答える