如何在同一个类(Java)中的另一个方法中引用方法中的变量?

时间:2015-06-09 09:12:31

标签: java

假设我在类下面有一个方法:

public void setNetForce(Planet[] planets) {
            this.xNetForce = 0;
            this.yNetForce = 0;
            for(Planet p:planets) {
                if (p == this) {
                    continue;
                }
                this.xNetForce += this.calcPairwiseForceX(p);
                this.yNetForce += this.calcPairwiseForceY(p);
            }

        }

现在我想在同一个类的另一个方法中使用xNetforce和yNetForce的值,我该怎么办?

7 个答案:

答案 0 :(得分:3)

当您在方法中使用this.xNetForce时,意味着存在 instance 变量。

因此,它们可以像您在方法中使用的那样在其他非静态方法中使用。

答案 1 :(得分:1)

您可以通过移动初始化在同一类的另一种方法中使用xNetforce和yNetForce

this.xNetForce = 0;
this.yNetForce = 0; 
以这种方式处于类级别的

外部setNetForce()方法,您将使其成为全局或可供全班使用。

答案 2 :(得分:0)

根据我的理解,你有一个 Planet 对象,它保持 xNetForce yNetForce 私有/公共变量。因此,如果您在一种方法中修改这些值,它们将在对象范围内保持修改

答案 3 :(得分:0)

this.xNetForce = 0;
this.yNetForce = 0;

通过这两行似乎xNetForceyNetForce已经在全局范围内(实例级别)

所以你可以愉快地在同一个类的任何方法中使用它们

但是如果你想知道如果在这个方法中声明了这些变量,例如:

public void setNetForce(Planet[] planets) {
int xNetForce = 0;
int yNetForce = 0;
......................
}

然后如何使用另一种方法?

答案你不能

答案 4 :(得分:0)

  1. 要访问所有类实例普遍可用的变量值,请创建xNetForce和yNetForce,静态并让所有实例都使用它们。
  2. 不要忘记许多线程与他们一起玩的情况,你错过了他们的最新价值。您应该编程以保持其访问完整性。
  3. 如果是非静态的,那么您的单个实例可以在整个生命周期中使用变量。

答案 5 :(得分:0)

this.xNetForce表示此变量是此类的成员。

'this'子句访问的任何变量实际上都是一个类成员。可以从同一个类的任何其他方法访问类成员。 例如:

public class Physics
{

    private int xNetForce;

    public void setNetForce(Planet[] planets) {
                this.xNetForce = 0;

            }

    public void setNetForceValue( int val)
    {
           this.xNetForce=val;
    }

}

如果将类变量声明为静态成员,则此类的所有对象将共享同一个变量。

答案 6 :(得分:0)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<select id="colors">
    <option value="">Select Color</option>      
    <option value="red">red</option>
    <option value="blue">blue</option>
    <option value="green">green</option>
</select>

<button>GO</button>

使用getter和setter