разница между классом, создающим объекты и функцией, которая создаёт джейсоны по переданным параметрам? Ну или словари. А методом тогда будет функция из джейсона того же. В общем смысле. Не привязываясь к языку. Никак не могу понять. Чем объект вообще от просто набора полей-словаря отличается? И чем класс не функция.
так, жсон объект обладает поведением (своими методами)?
ну никто ж не мешает положить кусок кода в джейсон и заюзать его как код
просто набор полей, в плюсах, обычно вообще структурой обзывают (как было в си). Объект без методов и сокрытия - это просто такой кастомный тип данных и все, мало к ооп отношения имеет
так, а ограничения? Можно ли сделать поле жсона приватным? Можно ли унаследоваться и дописать поля и методы?
ну дописать можно, конечно. Приватное поле не очень понимаю, сорри. Это как приватность организована? Аутентификацией чтоль какой?
ну, приватные поля доступны только методам самого объекта. То есть ни прочитать, ни изменить их из вне нельзя
Основной принцип ООП, инкапсуляция подразумевает, что данные и функции, оперирующие этими данными, помещаются в единую сущность, называемую "объект". При этом такие данные называются свойствами объекта, а такие функции - методами объекта. Таким образом, разница между функцике и объектом в том, что функция - это часть объекта.
Как реализовано в принципе не важно. В некоторых языках в принципе деления на private/public нет. Тут скорее важна сама концепция, что ты можешь как-то пометить детали реализации, чтобы потребитель понимал, что их трогать не нужно, они могут поменяться итд.
1. Объект от просто данных отличается наличием поведения. 2. Класс от функции отличается тем что это в принципе разные вещи. Функция - штука, которая принимает что-то на вход и отдаёт что-то на выход. У функции нет состояния (не должно быть, хотя некоторые языки позволяют добавить) Класс - описание объекта (его внутренней структуры) и его публичного интерфейса (публичных полей aka свойств и методов) Тоесть получается, что класс в принципе объекты не создаёт Вообще без привязки к конкретному языку сложно сказать, тк в разных языках ООП реализовано по разному. В целом кажется что главное: 1. Наличие объектов, как объединения некоторой предопределённой структуры данных и поведения. 2. Взаимозаменяемость объектов с идентичным публичным интерфейсом 3. Наличие возможности расширения существующих описаний объектов и поведений без переписывания и копирования исходных.
Обсуждают сегодня