2012-03-12 139 views
-1

当我想要一个方法初始化一个变量和另一个方法来使用初始化变量时,局部变量的想法有点难以理解。Java - 如何在一个类的几种方法中使用改变/修改的变量?

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 

但林不知道这是什么一样或者其目的的。我相信我确实需要对变量做些事情,然后在我的程序的其他部分使用这些修改后的变量。

谁能帮助我吗?谢谢。

+2

请告诉我们的只是你正在试图做什么,为什么,因为它显得扑朔迷离更详细的(至少对我来说)。请向我们展示您的真实代码。什么时候构建了这个类,并构造了它?何时和谁调用这两种方法,并且他们总是一个接一个地调用?也许你正在寻找使用常量值?我真的不知道。 – 2012-03-12 23:01:17

+0

您显示的'代码'中没有任何地方声明了变量'angle'。 – Perception 2012-03-12 23:01:55

回答

1

我认为你不了解什么是局部变量。在你的例子中,angleangleMethod()anglemethodTwo()(据我所知,根据提供的代码,虽然我没有看到你声明的角度)angle不同。

我觉得这样的事情是你要什么:

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. 
    } 
} 
+0

感谢您的回复,现在更清楚了,我很傻 – WeylandYutani 2012-03-18 17:39:22

0

如果你想初始化属性时创建的对象,你有两个选择:

  • 默认值

    int startAngle = 90 
    
  • 分配中(所有的)构造函数(S)

除此之外,如果你想检查在curre之前是否调用过其他方法nt方法,你应该自己编程(例如,必须先调用的方法设置一个属性,另一个方法检查它)。

相关问题