|
|
|
Почему переопределять поле в инициализаторе можно. а в блоке внутри метода - нельзя
|
|||
|---|---|---|---|
|
#18+
Постарался задать свой вопрос в сабже, но получилось довольно мозгодробительно ИМХО. Собственно код: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Вопрос в том почему 1 вариант допустим, а второй и третий - нет. В чем принципиальная разница то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2014, 14:55 |
|
||
|
Почему переопределять поле в инициализаторе можно. а в блоке внутри метода - нельзя
|
|||
|---|---|---|---|
|
#18+
redwhite90, Первый случай - вы сначала определили поле класса, а потом определили локальное поле внутри скобок. Локальное поле может сосуществовать вместе с полем класса, это валидная ситуация. Просто локальное поле "перекроет" поле класса. Второй - вы сначала определили локальное поле, а потом еще раз определили локальное поле с таким же именем. Так делать нельзя. Третий - аналогичен второму, попытка одним локальным полем перекрыть другое локальное поле, запрещено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2014, 15:16 |
|
||
|
Почему переопределять поле в инициализаторе можно. а в блоке внутри метода - нельзя
|
|||
|---|---|---|---|
|
#18+
DEVcoach, ммм....ну да, вы описали, то что говорит компилятор. А в чём принципиальная то разница. почему в одном случае запрещено, а в другом - нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2014, 15:24 |
|
||
|
Почему переопределять поле в инициализаторе можно. а в блоке внутри метода - нельзя
|
|||
|---|---|---|---|
|
#18+
DEVcoach, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2014, 15:33 |
|
||
|
Почему переопределять поле в инициализаторе можно. а в блоке внутри метода - нельзя
|
|||
|---|---|---|---|
|
#18+
redwhite90, причина в том, что в тех языках, где такое переопределение разрешено, иногда возникали из-за этого проблемы. Нечасто, но возникали. Вместо одной переменной использовалась другая. И компилятор не мог это выявить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2014, 15:33 |
|
||
|
Почему переопределять поле в инициализаторе можно. а в блоке внутри метода - нельзя
|
|||
|---|---|---|---|
|
#18+
petalvik, можете привести чуть больше деталей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2014, 15:40 |
|
||
|
Почему переопределять поле в инициализаторе можно. а в блоке внутри метода - нельзя
|
|||
|---|---|---|---|
|
#18+
this.k <> k в валидном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2014, 20:34 |
|
||
|
Почему переопределять поле в инициализаторе можно. а в блоке внутри метода - нельзя
|
|||
|---|---|---|---|
|
#18+
wadman, а можно всю мысль целиком? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2014, 22:31 |
|
||
|
Почему переопределять поле в инициализаторе можно. а в блоке внутри метода - нельзя
|
|||
|---|---|---|---|
|
#18+
redwhite90 Код: java 1. 2. 3. 4. 5. 6. Так понятнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2014, 22:59 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38637498&tid=2127206]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
233ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 560ms |

| 0 / 0 |
