我已经学会了如何在两个类之间调用方法甚至变量。我想知道是否可以在不使用继承的情况下将值从一个类移动到另一个类。这是一个例子:
- 我创建了两个类:class1 和 class2。
- 我输入一个值为 class1 的变量。
- 将变量的值移至 class2。
- 让值通过 class2 中的 if 语句进行测试。
- 可以将类 2 中的输出移至类 1,或者可以在类 1 中调用类 2 中的输出的方法。
但这不是一个真正的程序架构,它只是为了我的学习目的。谢谢。 更新: 我被要求发布一些我所做的代码来展示上述想法。 这是一类:
class MainClass
{
public static void main(String[] args)
{
System.out.println("You have entered: " + args[0]);
static int num = Integer.parseInt(args[0]);
SubClass.calc(); //I believe I override it by passing value to a method within SubClass
}
}
这是第二堂课:
class SubClass
{
public static void calc()
{
System.out.println("This is the output" + MainClass.num);
}
}
我尝试将 args[0] 中的值从 MainClass 移动到 SubClass,但是当我尝试将其从 string 转换为 int 数据类型时出现错误:
pavel@pavel-OptiPlex-GX270:~/myjava$ javac MainClass.java
MainClass.java:9: error: cannot find symbol
static int num = Integer.parseInt(args[0]);
^
symbol: variable args
location: class MainClass
1 error
我能做些什么来解决这个问题吗?
最佳答案
您不能删除方法内的静态变量:
尝试像这样编辑你的主类:
public class MainClass {
private static int num;
public static void main(String ... args) {
System.out.println("You have entered: " + args[0]);
num = Integer.parseInt(args[0]);
SubClass.calc();
//even better, pass in the argument
SubClass.calc2(num);
}
public static int getNum() {
return num;
}
}
你的子类
是这样的:
public class SubClass {
public static void calc() {
System.out.println("This is the output" + MainClass.getNum()); //invoke the public getter method. We hid the original num variable with private keyword
}
public static void calc2(int number) {
System.out.println(number);
}
}
关于java - java中是否可以将变量的值从一个类移动到另一个类而无需继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17096539/