Избранные комментарии трейдера Тимофей Мартынов
Тимофей Мартынов, ну вот. Что-то ведь знаешь =)
У всего есть фундаментальная причина. Думай как компилятор. Что ему надо знать, чтобы собрать программу? Тип данных необходим.
Простые типы — это:
во-первых, размер памяти выделяемый под них в файле и во время исполнения программы;
во-вторых, применимые к ним операции ассемблера.
Один и тот же набор битов означает разные сущности (разный смысл закодирован) в зависимости от типа данных.
То есть, в памяти хранится некий набор нулей и единиц, но в зависимости от того какая операция ассемблера будет выполнена (для целых без знака, со знаком, для вещественных чисел...) на выходе мы получим разный результат.
Поэтому компилятору надо знать тип данных.
Далее. Входных параметров у функции может быть много, а возврат всегда один (при этом результатом действия функции может быть много разных изменений, но возврат только один).
Когда объявляется функция у неё тоже обязательно объявляется тип данных, это и есть тип возврата.
В этом смысле переменная и функция подобны по синтаксису.
переменная так: тип_данных имя = значение
функция так: тип_данных имя(параметры)
Это должно быть кристально ясно, чтобы можно было переходить к абстракциям ООП. На самом деле ты должен сразу в голове выделять как компилятор все составляющие «предложения». В рамках камента не влезает, надо развивать дальше тот же путь (понять весь синтаксис предложения любого С-подобного языка программирования). По сути каждая команда ассемблера — функция. То есть всё сверху до самого процессора подобно одно другому (и внутри процессора), но дробится на более мелкие субстанции. Так что если понимаешь один уровень, поймёшь и другой.
Затем переходим к ООП.
функция = метод.
Класс — это сложный тип «данных», который на самом деле физически отличает от простого типа данных только то, что класс допускает совокупность не просто данных (переменных, грубо говоря), но и включает в себя исполняемый код, то есть методы закреплённые за этими данными.
Такая концепция позволяет создавать более сложные программы с меньшим гемором.
Объект – это конкретное воплощение класса (экземпляр).
Ещё раз:
тип_данных имя
Если тип_данных – это класс, а не простой тип, тогда «имя» — это объект (экземпляр класса).
Ясно?