正如标题所解释的那样,我希望能够使用方法中包含的计算所产生的数据来设置实例变量。
我制作了一个示例代码来演示我正在尝试做什么,以及我在搜索互联网后拼凑的解决方案。但显然,我未能成功复制其他人所做的事情。
提前感谢您的帮助。
此代码用于使用“myMethod”方法将实例变量“Max”设置为值“6”,然后使用“printMethod”打印“Max”的值。 / strong>
public class Main {
//Main class, Of Coruse.
private int Max;
//The value I wish to be changed by the method.
public int getMax() {
return Max;
}//The process which is supposed to get the value from the method.
public static void main(String[] args) {
Main Max = new Main();
{
Max.printMax();
}
}//The main method, and non-static reference for printMax.
public void myMethod() {//Method for assigning the value of "Max"
int Lee = 6;
this.Max = Lee;
}
public void printMax() {//Method for setting, and printing the value of "Max"
Main max = new Main();
int variable = max.getMax();
System.out.println(variable);
}
}
答案 0 :(得分:1)
我认为你对一个班级的实例如何运作有一些误解。我建议你先学习OOP的基础知识。
无论如何,虽然你没有告诉我预期结果应该是什么,但我想你想打印6
。所以这就是解决方案:
private int Max;
public int getMax() {
return Max;
}
public static void main(String[] args) {
Main Max = new Main();
Max.printMax();
}
public void myMethod() {
int Lee = 6;
this.Max = Lee;
}
public void printMax() {
this.myMethod();
int variable = this.getMax();
System.out.println(variable);
}
让我解释一下我的变化。
main
方法中,{}
之后不需要new Main()
,因此我将其删除。printMax
中,无需再次创建Main
个实例,因为this
已经 一个。6
的原因是因为变量max
从未更改过。为什么?因为你只是声明了一个改变max
的方法,但是没有调用该方法(myMethod
)!所以我刚添加了一行来调用myMethod
。