
Sergey
20.01.2017
07:31:21
все три условия соблюдены
1. это уже объект
2. кроме как в конструкторе нельзя, а это уже без классов, когда объект уже есть
3. класс в этом ключе выступает только как способ собрать воедино все. Посмотри на go, там нет классов но очень похожие вещи есть

Rodion
20.01.2017
07:31:57
Во, т.е. я был прав отчасти?

Sergey
20.01.2017
07:32:11
классы - они существуют только в коде. В рантайме их уже нет.

Google

da horsie
20.01.2017
07:32:30
как нет?

Sergey
20.01.2017
07:32:50
ну компилятор собирает из них таблички для диспетчеризации и все

da horsie
20.01.2017
07:33:04
я думаю, спор будет более конструктивным, если ты дашь ссылку на свое определение класса

Sergey
20.01.2017
07:33:15
но секу

da horsie
20.01.2017
07:33:32
=> в споре тоже смысла нет

Sergey
20.01.2017
07:33:56
=> в споре тоже смысла нет
я пытаюсь донести что в ООП на классы надо положить болтец и думать только категориями "типы объектов" и "контракты объектов"
классы, прототипы, интерфейсы + структуры - это лишь способ добиться этого
а не цель

da horsie
20.01.2017
07:34:22
ну тогда мы в оргтогональных плоскостях спорим

Sergey
20.01.2017
07:34:33
давай так
ты с моим утверждением согласен? что понятие класс в контексте ООП это второстепенная штука?

da horsie
20.01.2017
07:35:26
ну у тебя там выше было более общее утверждение, с которым я согласен

Google

da horsie
20.01.2017
07:35:44

Rodion
20.01.2017
07:36:01
Конструктор == метод обьекта "класса" (имеющего какой-то тип) создающий обьект этого же типа
Как вам такое?

Sergey
20.01.2017
07:36:29
давай заменим слово "класс" на "тип"
так удобнее?)

Rodion
20.01.2017
07:37:37
Не совсем(

Sergey
20.01.2017
07:37:45
почему?
у тебя есть объект типа user

Rodion
20.01.2017
07:38:01
С телефона неудобно(

Sergey
20.01.2017
07:38:01
как декларируется этот тип - это деталь реализации того языка, на котором ты пишешь

Rodion
20.01.2017
07:38:07
Ну да

Sergey
20.01.2017
07:38:30
а значит на вот эти "детали языка" надо положить болтец когда ты пытаешься осознавать какие-то более высокие концепции аля ООП
как только ты начнешь смешивать эти вещи - у тебя начнется каша
и самое смешное, это когда ты берешь два разных языка (JS и PHP например)
одни и те же вещи ты будешь интуитивно делать по разному
буквально на днях у меня собес был и там чувак про ООП в PHP рассказывал стандартный булшит
вроде "ну наследование заюзаю что бы дублирование убрать" и т.д
а как только переехали в плоскость языка без классов (он не юзает babel и es6 еще потому для него в js классов все еще нет но есть модули)
то сразу началась композиция, декорация, более грамотные подходы

Google

Rodion
20.01.2017
07:40:44

Sergey
20.01.2017
07:40:44
интересно было наблюдать за реакцией человека когда он сам пришел к выводу что в php можно делать так же и будет удобнее

Rodion
20.01.2017
07:40:52
И еще одно
Я если что не упираюсь, я готов быть вразумлённым)

da horsie
20.01.2017
07:41:52

Sergey
20.01.2017
07:42:58
возвращаясь к теме с чего начался этот замут про "что есть классы" - статические свойства и методы выпадают из парадигмы ООП. Это просто глобальные переменные + функции

Aleh
20.01.2017
07:43:19

f4rt~
20.01.2017
07:43:29
Вообще чат крутой, извиняюсь что ворвался, я по большей степени рид онли, но чертовски мне помогает

da horsie
20.01.2017
07:43:36
Проходите, садитесь. Прием ведет доктор @fes0r

Sergey
20.01.2017
07:43:39

Rodion
20.01.2017
07:44:01
Область видимости глобальная, я ж вроде это и сказал

Sergey
20.01.2017
07:44:24
да вообще "статическое" - это такая штука которая к ООП не имеет никакого отношения.

Rodion
20.01.2017
07:44:54
Окей
Это ясно

Sergey
20.01.2017
07:45:24
- 100 раз подумать перед тем как впиливать статическую переменную
- стараться делать статические методы как чистые функции, без сайд эффектов.
методы фабрики - вполне себе чисты
а вот если мы из статического метода в базу полезем или на файловую системы - уже не ок

Aleh
20.01.2017
07:46:40

Sergey
20.01.2017
07:46:58
конечно же) не бывает совершенства.
если ты под андроид какой-нибудь пишешь у тебя и выбора то не особо много

Google

Rodion
20.01.2017
07:47:19
С этим разобрались. Что есть конструктор?

Sergey
20.01.2017
07:47:35
ну или "обработчик оператора new если хочешь)

Rodion
20.01.2017
07:48:46
Это нельзя т.е. рассматривать как метод другого объекта?
Не, про реализацию на языке не говорим

Sergey
20.01.2017
07:49:30
нет, это будет всегда метод того объекта, который мы создали только что

Ilya
20.01.2017
07:49:46

Sergey
20.01.2017
07:49:46
другой вопрос что некоторые языки позволяют "подменять" объект в конструкторе, например тот же JS

Admin
ERROR: S client not available

Rodion
20.01.2017
07:49:47
Курица или яйцо?)

Sergey
20.01.2017
07:50:27

Rodion
20.01.2017
07:51:10
А начальные значения полей объекта тогда откуда?
Я без наездов, напоминаю

Aleh
20.01.2017
07:51:26
Из шаблона
Класс же это шаблон создания объекта

Sergey
20.01.2017
07:52:36

Rodion
20.01.2017
07:52:47
Ага

Sergey
20.01.2017
07:53:19
то есть в памяти будет выделена какая-то памяти и будет инициализировано значение (потому что его не надо вычислять в рантайме, можно прям при компиляции)

f4rt~
20.01.2017
07:53:30
Простите за ремарку, один я сижу читаю каждое слово с замиранием духа?

Rodion
20.01.2017
07:53:56
Это отличный чатик, да

Google

Sergey
20.01.2017
07:54:01
точно так же когда ты создаешь новый объект, у тебя сначала в памяти выделяется какая-то область для полей объекта, инициализируются значения и только потом вызывается конструктор
на момент вызова конструктора объект в памяти уже как бы есть

Rodion
20.01.2017
07:54:36
Хорошо

Sergey
20.01.2017
07:54:41
по этой причине ты собственно не можешь инициализировать значение свойства чем-то, значение чего нельзя вычислить на этапе компиляции
аля
class Foo
{
private $bar = foo(); // низя
}
рантайм языка тебе просто гарантирует что вызовет конструктор для подобных вещей

Ilya
20.01.2017
07:56:23

f4rt~
20.01.2017
07:56:57

Sergey
20.01.2017
07:58:03

Ilya
20.01.2017
07:58:55
Примерно вот так, только что читал
t.me/bookstreaming/171

f4rt~
20.01.2017
07:58:57
а мне наоборот разговоры такого рода скиляют так как говорим о насущной теме ООП

Rodion
20.01.2017
07:58:59
Класс в рантайме чем является, ещё раз? Шаблоном?

f4rt~
20.01.2017
07:59:13
приводя в пример другие яп и тд

Sergey
20.01.2017
07:59:35

f4rt~
20.01.2017
07:59:44
так как я начинал с сишки и функциональщины, а сейчас пхп и ооп дикий буст

Rodion
20.01.2017
08:00:23
Так, перечитаю это позже

Sergey
20.01.2017
08:00:40
функциональщина - это когда у тебя хаскель

Rodion
20.01.2017
08:00:56
Сядет ща телефон( куда гуглить об этом подробнее?

f4rt~
20.01.2017
08:01:19