|
154 / 140 / 26
Регистрация: 12.12.2020
Сообщений: 1,146
|
|
Что означает ключевое слово final при объявлении переменной19.02.2025, 16:17. Показов 3242. Ответов 28
Метки нет (Все метки)
Если я объявляю переменную как final то это говорит о том что она назначается один раз и не меняется в дальнейшем, то есть компилятор не даст скомпилировать код в котором она "переназначается". Так? Больше никакого смысла нет? Нет такого что компилятор как то более оптимально ее использует?
Просто та жа AndroidStudio и так "предупреждает" что вы переназначаете значение переменной если она не объявленна как final. Какой сокровенный смысл в этом final? Только предупредить программиста о том что ее нельзя менять?
0
|
|
| 19.02.2025, 16:17 | |
|
Ответы с готовыми решениями:
28
Что означает ключевое слово const? |
|
3812 / 1650 / 428
Регистрация: 14.03.2022
Сообщений: 4,117
|
|||
| 19.02.2025, 16:34 | |||
![]()
0
|
|||
|
6149 / 2842 / 1040
Регистрация: 01.06.2021
Сообщений: 10,364
|
||
| 19.02.2025, 21:38 | ||
|
0
|
||
|
Модератор
|
|
| 19.02.2025, 21:55 | |
|
Royal_X, Не только, тут в этом свои особенности. Например если под final объект или массив, тогда нельзя заменить объект или размер массива (то есть перевыделить новый на эту же ссылку), но можно изменить состояние объекта или элементы массива
Еще final могут быть методы и классы, тогда нельзя переопределять или наследоваться.
0
|
|
|
6149 / 2842 / 1040
Регистрация: 01.06.2021
Сообщений: 10,364
|
|
| 19.02.2025, 21:56 | |
|
0
|
|
|
154 / 140 / 26
Регистрация: 12.12.2020
Сообщений: 1,146
|
|
| 22.02.2025, 20:53 [ТС] | |
|
Спасибо большое всем за ответы. Просто когда ты объявил переменную в коде и не меняешь ее то тажа, ранее упомянутая, андройд студия предлагает сделать переменную final. Я думал что в этом может быть еще какой смысл, типа размещение переменной в какой-нить другой области памяти или еще какие плюсы даст. Но я так понял что это только запрет на нее изменение.
0
|
|
|
6149 / 2842 / 1040
Регистрация: 01.06.2021
Сообщений: 10,364
|
||
| 22.02.2025, 21:11 | ||
|
Но, в конце концов, программист это ты и тебе решать, что нужно делать. Тупо следовать всем советам ide я не рекомендую. Допустим, ты пишешь код и тебе ide предлагает сделать final. Но а вдруг ты позже собираешься менять эту переменную, но пока ты не написал эту часть кода. Если поменяешь на final, то потом все равно придется убирать final. Поэтому смотри на эти советы, когда код полностью написан, т.е. в самом конце.
0
|
||
|
Модератор
|
||
| 22.02.2025, 21:19 | ||
|
А вообще в Java есть понятие efficiently final, это когда при добавлении final код не ломается. И вообще не только в джаве это считается хорошим тоном (все что не меняется надо делать константой), хотя в джаве это не так принято, в локальных переменных (у методов) скорее даже не принято так делать. И идея так не советует, это похоже особенность андроид студии. Еще например в UE делать все const тоже хорошая практика кода или в языке Swift даже компилятор будет подсказывать (в виде предупреждений что надо бы использовать let вместо var, то есть константами), не говоря о том что параметры функций по умолчанию константы. Про котлин не знаю.
0
|
||
|
154 / 140 / 26
Регистрация: 12.12.2020
Сообщений: 1,146
|
||||
| 22.02.2025, 21:26 [ТС] | ||||
![]() типа потенциальная ошибка
0
|
||||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,764
|
|
| 22.02.2025, 21:47 | |
|
0
|
|
|
6149 / 2842 / 1040
Регистрация: 01.06.2021
Сообщений: 10,364
|
||
| 22.02.2025, 21:54 | ||
|
1. Касательно поделки. Если ты пробуешь забить гвоздь микроскопом и потом жалуешься, что микроскоп - поделка, ну это не серьезно. VS Code, будучи редактором, а не ide, во многих рейтинг-листах занимает первое место среди ide по популярности для языков JS, Python, C++, C. Вот я погуглил, во многих сайтах с рейтингами, VS Code на первом месте, тогда как продуктов от JetBrains даже рядом нет. Вот, InteliJ IDEA на некоторых сайтах еще может быть на первом месте, потому что для Java это реально неплохая ide, но вот остальные JB среды никогда не лидировали в своих областях... Большинство серьезных программистов для программирования выбирают редакторы, а не среды со свистелками - перделками, последние это больше нубский выбор. Нубам подавай ide, в котором пишут код и нажимают на красивую кнопку play. А как работает компиляция, какие параметры передаются компиляторы - им по барабану. А вот серьезные ребята на редакторах, все делают ручками. И вот именно опытные программисты выбирают VS Code и прочие редакторы, типа Vim и т.д. Поэтому не странно, что VS Code занимает первое место. Кстати, я когда видел список лучших ide, опубликованный на сайте JetBrains, так вот, там тоже VS Code был на первом месте, а их ide уже на втором. Хотя, возможно это была рекламная тактика - типа поставить свой продукт на второе место, чтобы другие не подумали, мол рейтинг предвзятый, дескать JB сам составил список и сам же свои продукты поставила на первое место. А тут может быть они хитро придумали, типа поставить бесплатный редактор на первое место, а потом свои продукты, и только потом среды от конкурентов. 2. Касательно языка, то на "языке для сайтов" JS программу для винды не сделаешь. JS, конечно, неплохой и по скорости рвет питон (а на питоне ведь делают программы и ничего), но программу на чистом JS ты не сделаешь. На самом деле, он написан на фреймворке Electron, а этот фреймворк сделан на языках С, С++ и JS. Причем, фреймворк использует популярную платформу Node.js, а также Chromium - самый популярный и мощный браузер в мире - именно на нем держится Chrome и все прочие хромиумные браузеры. По этому, говном этот Electron даже чисто теоретически не может быть. Хотя, разумеется, ОЗУ будет жрать как браузер) Мне кажется, Electron довольно неплохой выбор для пользовательского интерфейса.
0
|
||
|
6149 / 2842 / 1040
Регистрация: 01.06.2021
Сообщений: 10,364
|
|
| 22.02.2025, 23:13 | |
|
Кстати, idea порой советует тупые вещи, правда они потом сами исчезают. Например,
тут она советует мне вставить еще одну точку с запятой))) Сколько не писал в Visual Studio, VS Code, Code::Blocks, Eclipse и прочих ide, таких тупых вещей ни разу не встречал. У JetBrains уже горе от ума.
0
|
|
|
154 / 140 / 26
Регистрация: 12.12.2020
Сообщений: 1,146
|
||
| 22.02.2025, 23:15 [ТС] | ||
потом точка с запятой появилась но она еще не успела это осознать. То что потом это предупреждение пропало подтверждает эту догадку.Вообще если там включить все подсказки, то там рехнуться можно
0
|
||
|
6149 / 2842 / 1040
Регистрация: 01.06.2021
Сообщений: 10,364
|
|||
| 22.02.2025, 23:22 | |||
|
Не по теме:
0
|
|||
|
Модератор
|
||
| 22.02.2025, 23:26 | ||
|
А так превращать в язык с неявной типизацией ну такое себе. Я в swift от такого долго плевался, но там сним можно тип указывать. Например var s: String = "hi", что куда лучше и приятней такого var s = "hi"
0
|
||
|
6149 / 2842 / 1040
Регистрация: 01.06.2021
Сообщений: 10,364
|
|||||||
| 22.02.2025, 23:32 | |||||||
|
Например, я тут не задумываясь использовал бы auto, вот сравни, какой вариант тебе нравится, там где auto - 4 символа, или там, где сосиска на 46 символов:
0
|
|||||||
|
154 / 140 / 26
Регистрация: 12.12.2020
Сообщений: 1,146
|
||
| 22.02.2025, 23:42 [ТС] | ||
|
Не по теме:
0
|
||
| 22.02.2025, 23:46 | ||
|
Не по теме:
0
|
||
|
4839 / 1406 / 115
Регистрация: 21.04.2013
Сообщений: 8,572
|
||
| 22.02.2025, 23:48 | ||
0
|
||
| 22.02.2025, 23:48 | |
|
Помогаю со студенческими работами здесь
20
Ключевое слово static в объявлении функции Что означает [In] в параметрах при объявлении API функции? Что означает первая пара [ ] скобок при объявлении массива? Что значит * при объявлении переменной? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|