方法和参考调用

时间:2012-11-06 10:08:02

标签: java methods

我试图使用方法显示一个值,然后以不同的十进制格式交替显示它。主要问题是我输入后无法调用该值。这是我所知道的唯一问题,但如果还有其他我不理解的事情,我非常感谢任何见解。

//*************************************************
//Hwk8 This Program displays Java Methods
//Written By: Daniel Kellogg
//Last Modified: 11/05/12
//************************************************
import java.util.Scanner;
import java.io.*;  
import java.text.DecimalFormat;
import javax.swing.JOptionPne;

public class Hwk8 {
        public static void main (String[] args) throws IOException {
                double value; 
                double value2;
                double value3;
                double value4;
                double value5;

                value = getValue();
                System.out.println(value);

                value2 = getValue2();
                System.out.println(value2);

                value3 = getValue3();
                System.out.println(value3);

                value4 = getValue4();
                System.out.println(value4);

                value5 = getValue5();
                System.out.println(value5);

                System.exit(0);
        }


        public static double value()
        {
                double value;
                value = JOptionPane.showInputDialog("enter value");
                return value;
        }

        public static double value2(value) throws IOException
        {
                double value2;
                value2 = roundToInteger(value);
                return value2;
        }       

        public static double value3(value) throws IOException
        {       
            double value3;
            value3 = roundToTenths(value);
            return value3;
        }

        public static double value4(value) throws IOException
        {
                double value4;
                value4 = roundToHundredths(value);
                return value4;
        }

        public static double value5(value) throws IOException
        {       
                double value5;
                value5 = roundToThousandths(value);
                return value5;
        }
}

2 个答案:

答案 0 :(得分:1)

您的方法声明无效:

public static double value2(value)

您需要提供参数 type ,例如

public static double value2(double value)

然后,当您调用该参数时,需要为该参数提供参数,例如

value2 = getValue2(value);

其他说明:

  • 我还强烈建议您在首次使用时声明您的局部变量,而不是在方法开始时声明它们。
  • 您无需致电System.exit(0) - 当main方法完成时,您的流程已经退出(因为您尚未创建任何主题)
  • 你的方法永远不会抛出IOException - 你为什么宣称它们可能?
  • 您的方法每个都声明一个局部变量,然后分配一个值,然后返回该值。为什么不一步到位呢?

    return roundToTenths(value); // Complete body of value3
    

    (当然,这个方法本身毫无意义,因为你可以调用roundToTenths而不是......)

答案 1 :(得分:0)

您正在调用名称为getValue的函数,但您引用的函数的名称类似于value。也许半完全重命名?

main中,您只能通过标识符value访问value 功能,因为您已定义了一个局部变量用这个名字遮住它。因此,要使用value 函数,您需要使用其完全限定名称Hkw8.value