powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Инициализация объекта при создание(вопрос от новичка)
10 сообщений из 35, страница 2 из 2
Инициализация объекта при создание(вопрос от новичка)
    #40039347
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаю.... блин, язык все менее и менее логичный. Например, что должен делать код:

Код: java
1.
2.
3.
4.
public static FXOrder of(CurrencyPair pair, Side side, double price) {
        return new FXOrder(1, pair, side, price, 
                           LocalDateTime.now(), 1000);
}


Вот лично мне вообще нифига интиетивно не понятно, что это какой-то новомодный "статический фабричный метод".

ну и объявление "канонического конструктора" конструкцией похожей на описание вложенного типа, а не на описании функции, тоже за гранью добра и зла.

IMHO

На вкус и цвет конечно все фломастеры разные. Но синтаксический сахар оставляет какой-то горький привкус. Такое чувство, что люди которые синтаксис придумывали ни с C, ни с Java раньше вообще не работали, а прибежали из какой-то веб студии. Убивать за такое.
...
Рейтинг: 0 / 0
Инициализация объекта при создание(вопрос от новичка)
    #40039350
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
PetroNotC Sharp
Record не класс.


Почему?
Читаю блоги по record, вроде как раз таки обычный класс (только все final).
который java14?
Еще с дельфи учили что класс это данные плюс поведение.
Тут наследовать нельзя, поля статические, переводится как "запись".
И где тут классы?
...
Рейтинг: 0 / 0
Инициализация объекта при создание(вопрос от новичка)
    #40039398
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

Еще с дельфи учили что класс это данные плюс поведение.
...
И где тут классы?


Помните анекдот про ад для программистов и "демоверсию" ?

То, чему учили в школах - то демоверсия ООП. А на практике, класс - это данные + геттеры/сеттеры ))), в "лучшем случае" - DTO или какой нибудь immutable шаблон )))

Т.ч. вполне нормальный клас. В лучшех традициях современного ООП.
...
Рейтинг: 0 / 0
Инициализация объекта при создание(вопрос от новичка)
    #40039401
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вообще, печалит все это.

Это даже не "синтаксический сахар", а какая-то синтаксическая помойка. IMHO

В C++ и тоже более логично. Есть старый struct, новый class от него отличался только зоной видимости по умолчанию. Ну сделали бы так же. Record тот же class, только public и final + упрощенные методы (и конструктор) по умолчанию. С возможностью переопределения. Так нет же, еще какой-то дополнительный синтаксический мусор типа "статический фабричный метод", "канонический конструктор" в язык напихали.

Вот уверен, что большая часть (>50%) участников данной темы даже в синтаксисе enum'ов "плавают". Дабы нафиг это в реальной жизни не сдалось.

Нет же, сделаем синтаксис еще более уложненным и развесистым. IMHO
...
Рейтинг: 0 / 0
Инициализация объекта при создание(вопрос от новичка)
    #40039410
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
)) +1
Анекдот не раскрыт
...
Рейтинг: 0 / 0
Инициализация объекта при создание(вопрос от новичка)
    #40039421
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://g.zeos.in/?q=ад программист демоверсия

кривой вариант (до более менее юзабильного каждый может доработать сам в меру воображения и талантов расказчика)


Умер программист. Попадает он в чистилище, ему предлагают выбрать,
куда он хочет: в ад или в рай? Ведут на экскурсии.
В аду полным полно баров, ресторанов, на каждом углу стоят девочки... В общем не жизнь,
а малина.
В раю тоже все чистенько, культурно, но скучно. Программист, конечно же,
выбирает ад. Сразу же после того, как он попадает в ад, чертенята
засовывают его в котел и начинают поливать смолой.
- Но мне же обещали совсем другое! Я же сам видел...
- Извините, это была демо-версия!
...
Рейтинг: 0 / 0
Инициализация объекта при создание(вопрос от новичка)
    #40039431
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
PetroNotC Sharp
Record не класс.


Почему?
Читаю блоги по record, вроде как раз таки обычный класс (только все final).

Тут https://openjdk.java.net/jeps/395 в разделах Summary и Goals, объясняют зачем
внедрили эту штуку.
...
Рейтинг: 0 / 0
Инициализация объекта при создание(вопрос от новичка)
    #40039443
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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. Синтаксическое гуано.
...
Рейтинг: 0 / 0
Инициализация объекта при создание(вопрос от новичка)
    #40039445
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это код на "привычном Java", этот код без проблем поймет любой C-ник


Код: java
1.
2.
3.
4.
5.
6.
public class MyRecord {   -- это был ТИП
    public String greeting;
    public MyRecord(String greeting) {  -- это была Ф-ЦИЯ Конструктор
        this.greeting = greeting;
    }
}




это код на новомодной


Код: java
1.
2.
3.
4.
5.
6.
-- Ну а теперь, все наоборот )))
public record MyRecord( String greeting ) { 
    public MyRecord {
        ...
    }
}




Ну и нафига?
...
Рейтинг: 0 / 0
Инициализация объекта при создание(вопрос от новичка)
    #40039447
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С моей точки зрения Tuples реализованы избыточно. Я-бы ограничился фигурной скобкой вокруг
например анонимного возвращаемого параметра типа:

Код: java
1.
public { double, double } getComplexNumber() { .... }



Ну и адресация к полям проcто по номеру. _1, _2 .e.t.c

Они предложили record. Ну и бох с ними. И на том спасибо.

Вообще знаешь как оно бывает... Сначала фичу критикуют... Потом смиряются... И потом благодарят.

Из курса управленческих технологий вобщемто.
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Инициализация объекта при создание(вопрос от новичка)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]