使用位于超类中的另一个方法中的参数调用方法

时间:2012-11-05 16:25:47

标签: java math

我想知道如何在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;
    }
}

为了清晰而编辑。

2 个答案:

答案 0 :(得分:1)

所有这些参数都是完整的,因为您使用的是doubleint,这些参数不是Object,所以当传递给函数时它的值会被复制,这与{{1}不同将对它的引用传递给函数。

关于你的代码,未定义的变量Object将不允许它编译:

a a,a,a double a = getJD(

我不知道你想要做什么,请记住) + ((h-12)/24) + (m/1440) + (s/86400);方法agetJD 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));