java - 在同一个类中的方法中将实例变量作为参数传递?

标签 java pass-by-reference

是否可以将实例变量作为参数传递给同一个类中的方法?

请看下面的代码:

public class Example 
{

   private int var1;  //instance variable to be changed


   public Example()
   {
       var1 = 0;
   }

   public void changeVar()
   {
       this.changeVar1(var1);  //call method to change from within class
   }

   private void changeVariable(int variable)  //changes passed instance variable
   {
       variable = 2;
   }

}

在本示例中使用,这看起来很愚蠢,因为您可以通过第一个方法调用 changeVar() 轻松更改 var1,但我有一个更复杂的程序,其中有多个实例变量(var1、var2、var3、var4...var10) .我正在尝试编写 changeVariable() 一次并根据需要更改的内容传递每个实例变量,而不是为每个需要更改的实例变量编写单独的方法,即 changeVariable1、changeVariable2...changeVariable10。

最佳答案

这不仅仅是愚蠢的——它行不通。 Java 中的参数总是按值传递。所以你的 changeVariable方法实际上只是一个无操作...它改变了参数的值,但这与 var1 没有区别。 .

没有更具体的例子,很难知道这是否是一个好主意——我怀疑它不是——但是你尝试它的方式肯定行不通。

关于java - 在同一个类中的方法中将实例变量作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446396/

相关文章:

c++ - 指针和左移运算符的引用

c - Valgrind C : Accessing by reference and unitialized value

c++ - 支持按值传递语句的示例即使对于小型用户定义类型也不是好的做法

c++ - 如何将临时对象作为非常量引用传递给成员函数?

java - 在 HashMap 中设置默认值

java - 运动 : Drawing a Line from an Origin to a Destination in Processing

java - Java 如何处理单个 IF 语句中的多个条件

c# - 从方法 C# 返回数组

java - 摩尔斯电码,从英语到摩尔斯电码

java - Android 应用程序启动缓慢,但启动缓慢后运行良好