首页 > 解决方案 > 在类之间共享java中的变量

问题描述

我在自己的公共类中都有三个静态方法。帮助我学习的简单算术方法。

这些方法使用三个变量,这些变量在 main 方法中定义为静态 int 变量。该程序有效。

现在根据我对所读内容的理解,我应该能够将变量定义移动到另一个类并将它们定义为公共。然后,它自己的公共类中的 main 方法应该能够找到这些定义并运行。但这不会发生。相反,我的 Eclipse 工作区报告无法将定义解析为变量。

这是非常简单的代码(它给了我编译错误):

package christmas;

public class addintegers {
    public int number1 = 5;
    public int number2 = 10;
    public int answer;

    public static int add2numbers(int a, int b) {
        return (a + b);
    }
}

2 级

package christmas;

public class subtractintegers {
    public static int sub2numbers(int a, int b) {
        return (a - b);
    }
}

然后我有我的主要方法。这是我得到编译错误的地方。

package christmas;

public class glue {
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println(addintegers.add2numbers(number1, number2));
        System.out.println(subtractintegers.sub2numbers(number1, number2));
        answer = (addintegers.add2numbers(number1, number2)) + (subtractintegers.sub2numbers(number1, number2));
        System.out.println("answer =" + answer);
    }
}

我得到的错误是:

>create local variable number1
>create local variable number2
>create local variable answer

标签: java

解决方案


首先:

  • 类名应该是名词,并且使用UpperCamelCase
  • 方法名应该是动词,并且使用lowerCamelCase

例如,类似于以下内容:

public class Addition {

    public static int add(int a, int b) {
        return a + b;
    }
}
public class Subtraction {  

    public static int subtract(int a, int b) {
        return a - b;
    }    
}

如果你想在我重命名的类中拥有 , 和 字段number1number2通常你会做的是让它们成为实例变量并通过 getter 公开它们:answerAdditionprivate

public class Addition {

    private int number1 = 5;

    public int getNumber1() {
        return number1;
    }
}

然后,您可以通过创建类的实例来访问它们,例如:new Addition().getNumber1();. 然而,由于AdditionandSubtraction类似乎是实用程序类,因此声明这些字段可能更有意义,private static这样您就不必实例化这些类:

public class Addition {

    private static int number1 = 5;

    public static int getNumber1() {
        return number1;
    }
}

然后,您可以通过引用类而不是类的实例来访问它们,例如:Addition.getNumber1();.


推荐阅读