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