从另一个类调用一个方法

时间:2013-10-02 03:06:42

标签: java class methods

我在一个介绍性编程课程中,在我正在进行的实验室中,我们必须有两个类,并从一个类“能量”中提取方法,并将它们运行在“能量驱动程序”中。 我无法将方法(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;


 }
}

2 个答案:

答案 0 :(得分: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的值。

您还可以使用以下代码,该代码仅使用一种方法通过提供不同的参数来计算不同的值。

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

 }

答案 1 :(得分:0)

Java程序有 SINGLE 入口点,即通过 main 方法。 因此,在单个项目中,只有一个类应该具有main方法,并且编译器在运行它时会查找它 请记住,静态方法不能访问非静态方法,因此main是静态的,因此它不能访问testone,也不能访问三个,除非您创建该类型的对象。您可以使用Energy e = new Energy()在main方法中的含义访问那些未使用关键字static声明的方法,如e.testone()


但请注意,非静态方法可以通过Classname.Method名称访问静态方法,因为关键字static需要只存在该方法/变量的单个副本,因此我们不需要对象来访问它因为只有一个副本
我建议您阅读来自Lynda.com的Java视频或阅读Java Head First和Java How To Program(Deitel,Deitel)这些书籍,以便通过大量练习来提高您的Java知识,从而增强您的知识。
在SO搜索中还有很多其他问题