Confused about the value


December 2018


59 time


I am going through a JavaCode.I have a question regarding one variable which is being declared and used but I am not sure from where it's getting an integer value:

Problem Description:

I have a variable defined inside a class ( named "MyStuffReader") which is as follows:

private int CurrModValue;

Below in the code, I see the constructor for the class which is defined as follows:

 public MyStuffReader(int CurrModValue) 
            this.CurrModValue = CurrModValue;

I am wondering does CurrModValue generates value by itself?

My Understanding :

Thanks guys for your answers. I believe, I figured it out. I have another java file where I have the following defined:

public MyStuffReader[] QR;

private static int x = 10;

and then, later down in the code, I have the following defined:

QR = new MyStuffReader[x];

The code that I originally mentioned above is inside file. so, I believe the value 10 is getting passed into the constructor.

Please correct me if I am wrong.


3 answers


Значение , которое передается в качестве аргумента в методе будет установлено в переменный экземпляре CurrModValue.

public MyStuffReader(int CurrModValue) 
                this.CurrModValue = CurrModValue;
Instance Variable(global)---^            ^----Parameter variable(local)

Нет, CurrModValueне генерирует значение сам по себе. Это параметр конструктора. Если вы должны были создать MyStuffReader, вы можете закодировать его как:

MyStuffReader reader = new MyStuffReader(5);

Затем CurrModValue(параметр) является 5, и он получает назначен this.CurrModValue, который также становится 5.


this.CurrModValueи CurrModValueэто не то же самое. this.CurrModValueпринадлежит к объекту , пока CurrModValueобъявлен только внутри метода.