Вход на сайт
Java to C#
556 просмотров
Перейти к просмотру всей ветки
в ответ AlexNek 23.10.14 23:50
В ответ на:
Это высказывание, что то типа картинки медведя в шапке ушанке со звездой
Это высказывание, что то типа картинки медведя в шапке ушанке со звездой
А то. И с балалайкой :) А если честно, синтаксис первой версии шарпа сильно напоминал яву. Казалось, что облажавшись с J++ мелкомягкие пытаются хоть тут отыграться.
В ответ на:
Было бы нормально, (хотя о наличии констант можно было и подискутировать) если бы в качестве констант можно было пользовать только примитивные типы.
Но константа с "new" - сорри.
Было бы нормально, (хотя о наличии констант можно было и подискутировать) если бы в качестве констант можно было пользовать только примитивные типы.
Но константа с "new" - сорри.
А какая логическая разница? неизменяемое значение и все тут. Разница в реализации в яве есть. Константы примитивных типов и String в ней инлайнятся.
В ответ на:
А каким местом тогда разрешено в интерфес впихивать другой класс?
А каким местом тогда разрешено в интерфес впихивать другой класс?
Наверное решили что черт с ним, запрещать не будем, раз в классе можно, а использование в интерфейсе никаких механизмов не ломает.
Но зачем такое надо в интерфейсе... В обычных классах это достаточно полезная штука - логически сгруппировать что-то, или контейнер для нескольких полей, который больше нигде не нужен. В интерфейсе разве что как в в примере из первого сообщения - если хочется проинициализировать константы. Лично я такое не делаю и другим не даю - не надо мешать интерфейс и реализацию, потом какой-нибудь бедолага будет пытаться разобраться что тут понаделали, а главное - зачем.
В ответ на:
Какого писать публик если другой модификатор невозможен?
Какого писать публик если другой модификатор невозможен?
А его не надо писать. Компилятор автоматически расширяет описание полей и методов. Пишется часто просто по привычке, пальцы сами public набирают.
Сделали так - методы всегда public abstract поля - public static final. Напишешь что-то другое - получишь ошибку. Хочешь явно написать - пожалуйста, не запрещено.
В ответ на:
И эти комбинации, особенно со static и final запутывают полностью, так как лепят их куда попало.
И эти комбинации, особенно со static и final запутывают полностью, так как лепят их куда попало.
Вот тут не понял. Что запутывает и кто лепит?
В ответ на:
Пока запомнил только правило перевода для полей: static final <primive type> ----> const остальное readonly
Пока запомнил только правило перевода для полей: static final <primive type> ----> const остальное readonly
Где-то так. На всякий случай, вдруг в шарпе поведение у const другое, хотя врядли понадобится, но на всякий случай...
Я уже упоминал что в яве "константы" примитивных типов (и строки) инлайнятся. Если чуть глубже копнуть, то это не совсем так. Инлайнится только те, поля, значение которых можно просчитать во время компилирования. Называют такие инициализации "constant initializer" или "compile-time initializer". Т.е. если есть final int x = 10; то компайлер везде обращение к этому x поменят просто на 10. А если final long x = System.currentTimeMills(); то везде ссылка на поле x останется, потому как во время компиляции компайлер не может посчитать чему будет равно System.currentTimeMills().