我想知道如何在getToD中调用getJD()并保持参数完整,(或者暂时将参数设置为main中的变量并将变量调用到方法中)。 稍后将在main方法中使用scanner类输入参数。 import static java.lang.Math。*;
public class jdMethods
{
public static double getJD(double y, double m, double d){
if (m<=2.0){
y--;
m += 12.0;
}
double a=floor(y/100.0);
return (365.25*(y+4716.0))+(30.6001*(m+1))+d+(2.0-a+floor(a/4.0))-1524.5;
}
public static double getToD(int h, int m, int s)
{
double a = getJD(a, a, a) + ((h-12)/24) + (m/1440) + (s/86400);
return a;
}
}
为了清晰而编辑。
答案 0 :(得分:1)
所有这些参数都是完整的,因为您使用的是double
和int
,这些参数不是Object
,所以当传递给函数时它的值会被复制,这与{{1}不同将对它的引用传递给函数。
关于你的代码,未定义的变量Object
将不允许它编译:
a
a,a,a double a = getJD(
我不知道你想要做什么,请记住) + ((h-12)/24) + (m/1440) + (s/86400);
方法a
与getJD
a
不一样。
答案 1 :(得分:1)
关于你想要做什么并不是很清楚,但我认为你只想保存你的第一个getJD()的结果并在getToD()中使用结果,所以我创建了一个私有的_jd和为它创造了一个二传手和吸气剂。
import static java.lang.Math.*;
public class jdMethods
{
private double _jd;
public double getJD(){
return _jd;
}
public void setJD(double y, double m, double d){
if (m<=2.0){
y--;
m += 12.0;
}
double a=floor(y/100.0);
_jd = (365.25*(y+4716.0))+(30.6001*(m+1))+d+(2.0-a+floor(a/4.0))-1524.5;
}
public double getToD(int h, int m, int s)
{
double a = getJD() + ((h-12)/24) + (m/1440) + (s/86400);
return a;
}
}
所以这就是你如何称呼它:
jdMethods testRun = new jdMethods();
testRun.setJD(1,2,3);
System.out.println(testRun.getToD(3, 2, 1));