Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-如何在一个类中的几个方法中使用更改/修改的变量?_Java_Variables_Instance Variables_Local Variables - Fatal编程技术网

Java-如何在一个类中的几个方法中使用更改/修改的变量?

Java-如何在一个类中的几个方法中使用更改/修改的变量?,java,variables,instance-variables,local-variables,Java,Variables,Instance Variables,Local Variables,当我希望一个方法初始化一个变量,另一个方法使用该初始化变量时,局部变量的概念有点难以理解 范例 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

当我希望一个方法初始化一个变量,另一个方法使用该初始化变量时,局部变量的概念有点难以理解

范例

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 
但我不确定这是做什么的,也不确定它的目的。我相信我确实需要对变量做一些事情,然后在程序的其他部分使用这些修改过的变量


有人能帮我吗?谢谢。

如果要在创建对象时初始化属性,有两个选项:

  • 默认值

    int startAngle = 90
    
  • (所有)建造商的转让


除此之外,如果您想检查在当前方法之前是否调用了其他方法,您应该自己编写程序(例如,必须调用的方法首先设置属性,而另一个方法检查属性)。

我认为您不了解局部变量是什么。在您的示例中,
angleMethod()
中的
angle
methodTwo()
中的
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.
    }
}

请告诉我们更多的细节,你正试图做什么,为什么,因为它似乎困惑(至少对我来说)。请给我们看看你的真实代码。类是什么时候构造的,是什么构造的?什么时候,谁调用这两个方法,它们总是一个接一个地调用吗?也许您希望使用常量值?我真的不知道。在你展示的“代码”中,你没有声明变量
angle
。谢谢你的回答,现在更清楚了,我太傻了