Java 从另一个类调用方法

Java 从另一个类调用方法,java,class,methods,Java,Class,Methods,我在一个介绍编程的课程中,在我目前正在研究的实验室中,我们必须有两个类,从一个类“Energy”中提取方法,并让它们在“Energy Driver”中运行 我无法将这些方法(testOne、testTwo、testThree)调用到“EnergyDriver”中 在任何一个类中只能有一个main方法。要从另一个类调用方法,可以创建该类的对象,并调用它们各自的方法。另一种方法是将调用方法保持为静态,以便可以通过Classname.Methodname访问该方法 public class Ener

我在一个介绍编程的课程中,在我目前正在研究的实验室中,我们必须有两个类,从一个类“Energy”中提取方法,并让它们在“Energy Driver”中运行 我无法将这些方法(testOne、testTwo、testThree)调用到“EnergyDriver”中


在任何一个类中只能有一个main方法。要从另一个类调用方法,可以创建该类的对象,并调用它们各自的方法。另一种方法是将调用方法保持为静态,以便可以通过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;
}
}
使用此代码可以得到动能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;
 }

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


但是请注意,非静态方法可以通过
Classname.Method
name访问静态方法,因为关键字static意味着该方法/变量只存在一个副本,因此我们不需要对象来访问它,因为只存在一个副本。

我建议您观看Lynda.com上的Java视频,或阅读Java Head First和Java How To Program(Deitel,Deitel)这两本书,以提升您的Java知识。它们附带了大量练习,以增强您的知识。

还有很多其他类似的问题,所以搜索它们

你能把
Energy
类解析到你试图调用
EnergyDriver
方法的地方吗(反之亦然,无论调用另一个方法的是什么)。请格式化你的代码块,就好像你在把它变成你的教授一样。
 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;
 }

 }