使用Java从Method设置实例变量

时间:2016-08-11 01:12:29

标签: java methods this instance-variables

正如标题所解释的那样,我希望能够使用方法中包含的计算所产生的数据来设置实例变量。

我制作了一个示例代码来演示我正在尝试做什么,以及我在搜索互联网后拼凑的解决方案。但显然,我未能成功复制其他人所做的事情。

提前感谢您的帮助。

此代码用于使用“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);
    } 
}

1 个答案:

答案 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