当我想要一个方法初始化变量和另一个方法来使用该初始化变量时,局部变量的概念有点难以理解。
实施例
public class abc
public int startAngle;
public void angleMethod(){
startAngle = 90;
angle = startAngle;
}
public void methodTwo(){
anotherVar = angle + 10; //I want this angle to be initialized to 90
是否可以通过第一种方法将角度初始化为90?我想要的原因是我可以将我想要做的事情分解为更小的单个方法。
我尝试在第二种方法中将变量作为参数传递,如:
public void methodTwo(int angle)
但这没效果。
我读过使用
this.angle = angle
但我不确定这是做什么或它的目的。我相信我确实需要对变量做一些事情,然后在程序的其他部分使用这些修改过的变量。
任何人都可以帮助我吗?感谢。
答案 0 :(得分:1)
我认为你不了解局部变量是什么。在您的示例中,angle
中的angleMethod()
与angle
中的methodTwo()
不同(据我所知,基于提供的代码,尽管我看不到你宣布了角度。)
我认为这样的事情就是你想要的:
public class abc
{
//Declare class-scoped variables, accessible by all class methods. Could be public or private.
public int startAngle;
//constructor - initialize vars here
public abc()
{
startAngle = 90;
}
public void method()
{
int angleVar = startAngle + 10; //startAngle will be 90.
//angleVar will be 100;
//angleVar can only be accessed inside this method.
}
}
答案 1 :(得分:0)
如果要在创建对象时初始化属性,则有两个选项:
默认值
int startAngle = 90
在(所有)构造函数中的分配
除此之外,如果你想检查在当前方法之前是否已经调用了其他方法,你应该自己编程(例如,必须首先调用的方法设置一个属性,另一个检查它)