如何将变量赋值给静态方法的return语句?

时间:2011-08-06 12:08:16

标签: java methods

我似乎无法获得第二种方法的价值,请教我如何在这方面仍然是初学者。我是否必须使用其他变量?如果是这样,我如何将该方法的返回值分配给所述变量?

import java.util.Scanner ;

class JavaChip
{

    static Scanner s = new Scanner(System.in) ;
    static double val ;


    public static void main( String[] args )
    {
        displayLine () ;
        System.out.print ("Enter number of cups of Mocha JavaChip: ");
        val = getMocha( s.nextDouble() ) ;
        System.out.print ("The grams of mocha is: " + val ) ;

        System.out.print ("\nThe grams of sugar is: " + val ) ;
        displayLine () ;
    }

    static double getMocha ( double c )
    {
        return ( 1.215 * c ) ;
    }

    static double getSugar (double c)
    {
        val = ( 0.15 * c ) ;
        return val ;
    }

    static void displayLine()
    {
        System.out.println("\n\n[][][][][][][][][][][][][][][][][][][]") ;
        System.out.println("[][][][][][][][][][][][][][][][][][][]") ;
    }

}

3 个答案:

答案 0 :(得分:5)

如果您想使用方法的值,您必须调用它。

val = getSugar(num);

使用静态字段传递参数或返回值是不好的做法。这可能会引起混淆并导致细微的多线程错误。它也比仅使用getMocha()

返回值更复杂

答案 1 :(得分:1)

实际上你应该将你的项目分成两个文件:
1.包含显示主要功能和帮助功能的文件,如displayLine 2.代表项目业务的文件(JavaChip?)。

示例:

Program.java:

class Program
{
    public static void main( String[] args )
    {
        displayLine () ;
        System.out.print ("Enter number of cups of Mocha JavaChip: ");
        Scanner s = new Scanner(System.in) ;
        JavaChip jc=new JavaChip();
        double val = jc.getMocha( s.nextDouble()) ;
        System.out.print ("The grams of mocha is: " + val ) ;
        val = jc.getSugar( s.nextDouble());
        System.out.print ("\nThe grams of sugar is: " + val ) ;
        displayLine () ;
    }

    static void displayLine()
    {
        System.out.println("\n\n[][][][][][][][][][][][][][][][][][][]") ;
        System.out.println("[][][][][][][][][][][][][][][][][][][]") ;
    }
}

JavaChip.java:

class JavaChip
{
    public JavaChip()
    {

    }

    public double getMocha ( double c )
    {
        return ( 1.215 * c ) ;
    }

    public double getSugar (double c)
    {
        val = ( 0.15 * c ) ;
        return val ;
    }
}

答案 2 :(得分:1)

您的代码是100%正确的。只是您没有调用getSugar(double value)方法。就像你对getMocha(double value)所做的一样。然后你可以获得返回值。