class X
{
final int i;
X()
{
i = 0;
}
То, что вы говорите выше, это то, что ваш i
равен 0, если параметры не заданы. Это то же самое, что сказать i=0
или this.i=0
. То же самое, что есть только один i
, поэтому this
на самом деле не нужен.
С другой стороны, ниже, есть 2 экземпляра i
, поэтому вам нужно убедиться, что Java знает, какой из них какой. В этом случае представьте, что вы хотите равняться i
из X
, равному i
, переданному в качестве параметра:
this.i=i;
- это то, что вы искали. «Мой i
класса должен быть i
, переданным в качестве параметра.
Так что в этом случае, если ваш конструктор получает int, он должен дать ВАШЕМУ i
значение 20
. Если ваш параметр был j
, так как j
не определен в вашем классе, он принимает i
как i
вашего класса. Но имея 2 i
, вы должны убедиться, какой из них какой!
X(int i)//need to keep other than i
{
//the i of my class should be 20. remember! this.i=i if you want the i of your class to be equal to the parameter passed i
this.i = 20;
}
}