|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Заранее спасибо за информацию! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:08 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Mixon, Нет. В конструкторе же меньше писать инициализацию. Проще..? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:17 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Через конструктор с параметрами. public MyTestClass(int id, String name) { this.id = id; this.name = name; } ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:19 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Nixic Через конструктор с параметрами. public MyTestClass(int id, String name) { this.id = id; this.name = name; } Вариант предложенный Вами, на мой взгляд "не очень", обясню почему, выносить в конструктов все поля это еще не гемор, гемор это создание кучи вариантов конструктора, к примеру, инициализания всех полей класса или только поля "id" или поля "name", вариант из C#, позволяет избежать лишней писанины. Спасибо! яве есть куда еще развиваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 12:46 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Mixon, Это тебе есть куда развиваться. В java пишут Устойчивый производственный код. Дуракоустойчивый.. Где не надо 1500 вариантов инициализации класс.. Если класс для печати, то у него 3 или 4 варианта создания. И жестких конструкторов или фабрика. Вам в js сайтики писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 13:13 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Неудобно что нет такой штуки public int id = 123; Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 13:44 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Mixon, Нет. В конструкторе же меньше писать инициализацию. Проще..? Как это нет, когда есть анонимные классы с синтаксисом один в один? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 13:50 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Друзья, поймите мою точку зрения, я чайник в JAVA, есть устоявшийся у меня(лично) процесс инициализации объектов, не спорю, что для этого есть базовый конструктор, и как выше описано, вариант C#, там тоже можно используя имя переменной задать паблик свойство объекта, а можно как принято через конструктор, но есть интнресный вариант который позволяет после вызова конструктора в блоке {} задать публичные свойства объекта. Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:10 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Alexander A. Sak PetroNotC Sharp Mixon, Нет. В конструкторе же меньше писать инициализацию. Проще..? Как это нет, когда есть анонимные классы с синтаксисом один в один? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:30 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Mixon, Ну ты жеж на яву наехал на прощание. Поэтому я на тебя). Много народу С++ ругает за кучу вариантов инициал. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:33 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Alexander A. Sak пропущено... Как это нет, когда есть анонимные классы с синтаксисом один в один? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
Вывод: Код: plaintext 1. 2.
Но таки надо понимать что происходит под капотом. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2021, 14:58 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
обычно подобные DTO классы делают с приватными полями, и для каждого поля пишут getter и setter. Далее в начале какого-то класса или внутри метода: MyTestClass t=new MyTestClass(); и через setter: t.setId(123); ... Чтобы руками не писать геттеры и сеттеры в любой IDE есть генераторы для них (и не только для них) Кроме того, чтобы совсем ничего не писать можно над классом сделать аннотация от lombok @Data public class MyTestClass { .... У lombok не только лишь эта одна аннотация, но и много других - для конструкторов, для отдельных сеттеров и много чего еще, чем я лично почти не пользуюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 11:33 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
а напрямую к полям класса обращаться не принято, принято их именно приватными делать. хотя никто не запрещает сделать паблик или любой другой или без(т.е. дефолтный пекейдж) сорри, за то, что на русском написал, влом переключать язык))) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 11:36 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Nixic, Ты прям напугал сложностями в java. Он разве про DTO говорил? Оно вообще отмирает и спринг буте его нету. Слишком много нельзя и правил для новичков из 40 строк текста. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 12:27 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Zzz79, Тема про программистов без аннотаций. Киш из темы! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 12:42 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Zzz79, Код без аннотаций ввергает тебя в ступор))) автора пишут как то так @Getter @Setter @Accessors(fluent = true) @NoArgsConstructor @AllArgrsConstructor Ха ха))) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 18:30 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Mixon Вариант предложенный Вами, на мой взгляд "не очень", обясню почему, выносить в конструктов все поля это еще не гемор, гемор это создание кучи вариантов конструктора, к примеру, инициализания всех полей класса или только поля "id" или поля "name", вариант из C#, позволяет избежать лишней писанины. гугли lombok и @Builder аннотацию, любая комбинация будет выглядеть как Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 18:48 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
hck2, Круто. Что только не придумают. Но в плюсах покруче Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 19:28 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp hck2, Круто. Что только не придумают. Но в плюсах покруче Код: plaintext 1.
а вот был бы там Builder, не выкинули бы плюсы на свалку истории. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 19:42 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
hck2, Эх, молодёжь! Всё бы вам своих родителей выкидывать на свалку истории. Это проходит...к взрослению до синьора)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2021, 20:26 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Mixon, Можно как в Kotlin <:o) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 10:58 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Код: java 1.
Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 11:21 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
mayton, Record не класс.) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 11:30 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Это неважно. Главное - чтобы show must go on и клиент доволен. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 11:33 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Record не класс. Почему? Читаю блоги по record, вроде как раз таки обычный класс (только все final). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 13:57 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Читаю.... блин, язык все менее и менее логичный. Например, что должен делать код: Код: java 1. 2. 3. 4.
Вот лично мне вообще нифига интиетивно не понятно, что это какой-то новомодный "статический фабричный метод". ну и объявление "канонического конструктора" конструкцией похожей на описание вложенного типа, а не на описании функции, тоже за гранью добра и зла. IMHO На вкус и цвет конечно все фломастеры разные. Но синтаксический сахар оставляет какой-то горький привкус. Такое чувство, что люди которые синтаксис придумывали ни с C, ни с Java раньше вообще не работали, а прибежали из какой-то веб студии. Убивать за такое. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 14:10 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev PetroNotC Sharp Record не класс. Почему? Читаю блоги по record, вроде как раз таки обычный класс (только все final). Еще с дельфи учили что класс это данные плюс поведение. Тут наследовать нельзя, поля статические, переводится как "запись". И где тут классы? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 14:14 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Еще с дельфи учили что класс это данные плюс поведение. ... И где тут классы? Помните анекдот про ад для программистов и "демоверсию" ? То, чему учили в школах - то демоверсия ООП. А на практике, класс - это данные + геттеры/сеттеры ))), в "лучшем случае" - DTO или какой нибудь immutable шаблон ))) Т.ч. вполне нормальный клас. В лучшех традициях современного ООП. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 16:05 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Но вообще, печалит все это. Это даже не "синтаксический сахар", а какая-то синтаксическая помойка. IMHO В C++ и тоже более логично. Есть старый struct, новый class от него отличался только зоной видимости по умолчанию. Ну сделали бы так же. Record тот же class, только public и final + упрощенные методы (и конструктор) по умолчанию. С возможностью переопределения. Так нет же, еще какой-то дополнительный синтаксический мусор типа "статический фабричный метод", "канонический конструктор" в язык напихали. Вот уверен, что большая часть (>50%) участников данной темы даже в синтаксисе enum'ов "плавают". Дабы нафиг это в реальной жизни не сдалось. Нет же, сделаем синтаксис еще более уложненным и развесистым. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 16:13 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, )) +1 Анекдот не раскрыт ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 16:55 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
https://g.zeos.in/?q=ад программист демоверсия кривой вариант (до более менее юзабильного каждый может доработать сам в меру воображения и талантов расказчика) Умер программист. Попадает он в чистилище, ему предлагают выбрать, куда он хочет: в ад или в рай? Ведут на экскурсии. В аду полным полно баров, ресторанов, на каждом углу стоят девочки... В общем не жизнь, а малина. В раю тоже все чистенько, культурно, но скучно. Программист, конечно же, выбирает ад. Сразу же после того, как он попадает в ад, чертенята засовывают его в котел и начинают поливать смолой. - Но мне же обещали совсем другое! Я же сам видел... - Извините, это была демо-версия! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 17:21 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev PetroNotC Sharp Record не класс. Почему? Читаю блоги по record, вроде как раз таки обычный класс (только все final). Тут https://openjdk.java.net/jeps/395 в разделах Summary и Goals, объясняют зачем внедрили эту штуку. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 17:40 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
mayton, Смотрю на вашу ссылку, просто примеры.... такой говно код (по стилю написания)... 1) Зачем для объявления полей record были выбраны ( ) мне не понятно. В Java "внутренности" обычно объявлялись через { }. Что class, что enum. Нафига поменяли стиль ради record ? 2) Ну и "It may also be declared more compactly, by eliding the list of formal parameters." у меня вызывает полное отвращение. Т.к. без привычных скобочек при объявлении ф-ции, лично для меня вообще не очевидно, что данный код объявляет: ф-цию/конструктор, какой-то вложенный класс, просто какой-то статической код и так далее. 3) "and the private fields corresponding to record components cannot be assigned in the body but are automatically assigned to the corresponding formal parameter" лично мне, опять таки, это совершенно не очевидно: 3.1. что объявление процедуры/конструктора идет без ( ) /но при этом ( ) используются в record, который нифига не процедура/ 3.2. что под именами переменных понимаются параметры (которых нет! их "by eliding") и которые можно менять, а не final поля класса (которые final). Ну и привычка менять в коде in параметры процедуры/ф-ции/конструктора - для меня, опять таки, не best practics, а гуано-код. IMHO. Синтаксическое гуано. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 18:02 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
Это код на "привычном Java", этот код без проблем поймет любой C-ник Код: java 1. 2. 3. 4. 5. 6.
это код на новомодной Код: java 1. 2. 3. 4. 5. 6.
Ну и нафига? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 18:07 |
|
Инициализация объекта при создание(вопрос от новичка)
|
|||
---|---|---|---|
#18+
С моей точки зрения Tuples реализованы избыточно. Я-бы ограничился фигурной скобкой вокруг например анонимного возвращаемого параметра типа: Код: java 1.
Ну и адресация к полям проcто по номеру. _1, _2 .e.t.c Они предложили record. Ну и бох с ними. И на том спасибо. Вообще знаешь как оно бывает... Сначала фичу критикуют... Потом смиряются... И потом благодарят. Из курса управленческих технологий вобщемто. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 18:14 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120543]: |
0ms |
get settings: |
27ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
596ms |
get tp. blocked users: |
2ms |
others: | 283ms |
total: | 980ms |
0 / 0 |