假设我在类下面有一个方法:
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的值,我该怎么办?
答案 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;
通过这两行似乎xNetForce
和yNetForce
已经在全局范围内(实例级别)
所以你可以愉快地在同一个类的任何方法中使用它们
但是如果你想知道如果在这个方法中声明了这些变量,例如:
public void setNetForce(Planet[] planets) {
int xNetForce = 0;
int yNetForce = 0;
......................
}
然后如何使用另一种方法?
答案你不能。
答案 4 :(得分:0)
答案 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