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