使所有方法都可以访问变量

时间:2015-07-02 15:48:19

标签: java variables methods

我对java有点新,我最近学习了一些方法(太酷了!)。我想知道是否可以在我的main方法中声明一个变量并在其他方法中使用它。

我想要做的是使用方法创建一个计算器(仅适用于这个新概念的练习),但我不想每次在每个方法中声明变量。

以下是代码的骨架结构:

class GS1{



public static void main (String[]args){
    Scanner input = new Scanner(System.in);
    System.out.println("Enter the math operation to be completed: ");
    String opt = input.nextLine();
    int x,y;  // I tried declaring variables here
    switch(opt){

    case  "addition" :
    // addition method goes here
    break;
    case "subtraction":
    //subtraction method goes here
    break;
    case "multiplication":
    //multiplication method   goes  here
    break;
    case "division":
    //division method goes here
    break;
    }

}

static void addition(){
    System.out.println("Enter first value for addition");
    x=input.nextint(); // i get error stating both "x" and "input" cannot be resolved as a variable


}

static void subtration(){


}

static void Multiplication(){

}

static void Division(){



}

}

4 个答案:

答案 0 :(得分:5)

您应该将变量置于所有方法之外但在类中,从而创建全局访问。

public class ClassName
{
    public int x;
    public int y;

    public void method1()
    {
        x = 3;
    }

    public void method2()
    {
        y = 1;
    } 
}

答案 1 :(得分:3)

在类级别移动变量,使其成为类中的一个字段。

由于您正在学习,最好不要使用static字段或方法,除了main方法。

答案 2 :(得分:1)

更好地整理代码,制作如下代码:

class Operation {

    public double addition(double... value) {
        double result = 0;
        for (double i : value) {
            result += i;
        }
        return result;
    }

    public double subtration(.....) {
        // .........................
        return 0.0;
    }

    public double multiplication(.....) {
        // .........................
        return 0.0;
    }

    public double division(.....) {
        // .........................
        return 0.0;
    }
}

public class GS1 {

    public static void main(String[] args) {
        Operation operations=new Operation();


        //read value code 
        double result=operations.addition(value);

        //print result code

    }
}

答案 3 :(得分:1)

你需要这样的东西:

    class GS1 {

        public static int x;
        public static Scanner input;

        public static void main(String[] args) {
            input = new Scanner(System.in);
            System.out.println("Enter the math operation to be completed: ");
            String opt = input.nextLine();
            int x, y; // I tried declaring variables here
            switch(opt){

            case  "addition" :
            // addition method goes here
            break;
            case "subtraction":
            //subtraction method goes here
            break;
            case "multiplication":
            //multiplication method   goes  here
            break;
            case "division":
            //division method goes here
            break;
            }
        }

        static void addition() {
            System.out.println("Enter first value for addition");
             x=input.nextint(); // i get error stating both "x" and "input" cannot
            // be resolved as a variable

        }

        static void subtration() {

        }

        static void Multiplication() {

        }

        static void Division() {

        }

    }

请记住在字段声明(x和输入)中使用“static”修饰符,不能对非静态字段进行静态引用。

更好的方法是使用对象而不是将所有方法放在一个类(GS1)中。例如,在评论中创建像Marged建议的Calculator类