Разница между конечными и статическими переменными в отношении их использования во внутреннем классе - PullRequest
0 голосов
/ 24 сентября 2010

это относится к конечным переменным во внутреннем классе, но вместо объявления переменной как конечной, если мы объявим переменную как статическую вне метода, предполагая, что метод статический. Тогда в чем разница между объявлением статическим внешним методом или конечным внутренним методом для доступа во внутреннем классе. будут ли они иметь какое-либо значение, или они функционируют аналогично. Какой из них лучше использовать. Я буду ждать ответа.

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 24 сентября 2010

статические переменные сохранят свое значение в различных экземплярах внутреннего класса.Допустим, вы объявляете статическую переменную во внутреннем классе A и присваиваете ей значение 1, а затем в вызове метода увеличиваете его значение до 2. Когда создается другой экземпляр этого внутреннего класса, он будет иметь значение A как 2.

В случае конечных переменных вы можете присвоить значение только один раз при объявлении (в вашем случае, т. Е. При объявлении внутри метода).В результате этого компилятор встраивает значение, т. Е. Где бы вы ни указывали эту переменную, переменная заменяется ее значением (поскольку вы не можете изменить ее значение).

Я предлагаю использовать окончательную переменную везде, где это возможно.но у static есть свои выигранные потребности, и использование зависит от сценария использования.

2 голосов
/ 28 января 2013

Конечные переменные - это переменные экземпляра, значения которых нельзя изменить после их инициализации (либо в c'or, либо во время объявления).Но статические переменные принадлежат классу.Это будет распространяться среди всех экземпляров.Поэтому, когда вы изменяете значение статической переменной в экземпляре, оно отражается во всех экземплярах.

...