[英]sharing variables in java between classes
我在自己的公共类中有三个静态方法。 帮助我学习的简单算术方法。
这些方法使用三个变量,当在主方法中定义为静态 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
首先:
例如,类似于以下内容:
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;
}
}
如果您想在我重命名Addition
的类中拥有number1
、 number2
和answer
字段,通常您要做的是将它们设为private
实例变量并通过 getter 公开它们:
public class Addition {
private int number1 = 5;
public int getNumber1() {
return number1;
}
}
然后您可以通过创建类的实例来访问它们,例如: new Addition().getNumber1();
. 但是,由于Addition
和Subtraction
类似乎是实用程序类,因此将这些字段声明为private static
可能更有意义,因此您不必实例化这些类:
public class Addition {
private static int number1 = 5;
public static int getNumber1() {
return number1;
}
}
然后您可以通过引用类而不是类的实例来访问它们,例如: Addition.getNumber1();
.
你快到了。 你错过了两个关键点:
package christmas;
public class addintegers {
public static int number1 = 5;
public static int number2 = 10;
public static int answer;
public static int add2numbers(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(addintegers.number1,addintegers.number2));
System.out.println(subtractintegers.sub2numbers(addintegers.number1,addintegers.number2));
addintegers.answer = (addintegers.add2numbers(addintegers.number1,addintegers.number2))+(subtractintegers.sub2numbers(addintegers.number1,addintegers.number2));
System.out.println("answer =" +addintegers.answer );
}
}
package com.rohov;
public class Application {
public static void main(String[] args) {
System.out.println(AddInteger.sum(AddInteger.num1, AddInteger.num2));
System.out.println(SubInteger.sub(AddInteger.num1, AddInteger.num2));
AddInteger.sum = AddInteger.sum(AddInteger.num1, AddInteger.num2) + SubInteger.sub(AddInteger.num1, AddInteger.num2);
System.out.println(AddInteger.sum);
}
}
class AddInteger {
public static int num1 = 5;
public static int num2 = 10;
public static int sum;
public static int sum(int a, int b) {
return a + b;
}
}
class SubInteger {
public static int sub(int a, int b) {
return a - b;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.