|
|
|||||
Регистрация: Aug 2012
Сообщений: 297
|
Что такое объект и класс?
Здравствуйте, помогите, пожалуйста, понять.
В чём заключается разница между объектом и классом? |
|
|||||
Вы видимо оптимист.
Класс это чертеж, экземпляр (скорее всего это вы подразумеваете под объектом) -- готовое изделие, если не вдаваться в подробности.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вы — экземпляр класса Человек Разумный. Который в свою очередь наследует (расширяет) класс Млекопитающие, например.
__________________
Reality.getBounds(this); |
|
|||||
Класс - это описание того, каким должен быть объект (правильное название экземпляр, но объектом тоже называют часто) плюс возможность создавать эти самые экземпляры. То, что вы пишете в файле Class XXX {...} это и есть ваше описание класса.
Экземпляр (объект) - это просто заблокированный участок памяти, в котором хранятся инструкции, которые экземпляр может выполнять. То что вы получаете, написав var XXX = new XXX() - это и есть экземпляр. Если проводить земные аналогии: класс - это автомобильный завод, который может производить один вид автомобилей. В нем есть спецификация этого самого автомобиля. По указанию инженера он может произвести столько автомобилей, сколько нужно. Каждый автомобиль - экземпляр/объект. В нем заложены инструкции - ездить, поворачивать, тормозить, светить фарами. В общем как-то так
__________________
interplanety |
|
|||||
Цитата:
Класс — абстрактный тип данных в объектно-ориентированном программировании, задающий общее поведение для группы объектов; модель объекта. Завод - скорее всего запущенное приложение (игра), созданное на базе пакета классов. А класс, как писалось выше, это чертежи, калька, шаблон, "рыба" и т.д. вновь созданного экземпляра (этого класса). Класс описывает поведение (методы) и свойства будущего "изделия", а также сообщает, что надо делать при наступлении тех или иных событий. Класс это рецепт приготовления блюда, а борщ, компот и кисель - это экземпляры разных классов. Вот их можно попробывать, пролить, съесть. А рецепт халвы, как не пробуй, во рту сладко не станет. |
|
|||||
В рамках as3, класс ближе к фабрике объектов, чем к рецепту. Он сам по себе экземпляр Class с собственными методами, свойствами (статическими) и собственным конструктором.
Другое дело, что на этапе вопроса "в чем разница", лучше думать о классе как о рецепте.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Цитата:
Я сознательно использовал в аналогии термин завод, а не фабрика т.к. существуют еще и фабрики классов, чтобы не вносить путаницу больше необходимого
__________________
interplanety |
|
|||||
Данные хранить он может (в штампе) и работяге по голове им настучать можно.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Modus ponens
|
На самом деле, кроме интуитовного понятия о том, что такое классы и их объекты, есть еще и сугубо математическое понимание вопроса. Я попробую в двух словах описать.
Мы можем описать нашу вселенную как многомерное пространство. Самый тривиальный пример пространстава - одномерное, это прямая, на которой мы можем отложить какие-то расстояния. Менее тривиальный пример - система декартовых координат (две прямые на которых мы откладываем расстояния), аналогично можно пойти дальше - трехмерная, четырехмерная системы и т.д. Другое представление системы координат - это рассматривать ее не как две прямые, а как систему линейных уравнений, где подставляя значения решающие систему уравнений мы получаем результаты в нашем пространстве. В общем случае мы представляем многомерную систему координат, как систему линейных уравнений вида: a^n * x_0 + a^(n - 1) * x_1 ... a^0 * x_2 a^n * y_0 + a^(n - 1) * y_1 ... a^0 * y_2 ... a^n * z_0 + a^(n - 1) * z_1 ... a^0 * z_2 где n соответствует количеству измерений в нашем пространстве, а векторы x = [x_0, x_1, x_2], y = [y_0, y_1, y_2], z = [z_0, z_1, z_2] - коеффициенты системы. О системах линейных уравнений существует множество теорем на основании известных нам свойств. Интересующее нас свойство - это свойство путем линейных преобразований используя векторы конкретной системы получить группу эквивалентных решений. Эти группы называют классами. Пример. У нас есть система линейных уравнений: (А) a^2 + b = 0 2a^2 - 2b = 0 Такая система описывает все возможные решения в двумерном пространстве, т.как мы всегда сможем подобрать такие a и b для которых выбраная точка в двумерном пространстве будет решением системы. (B) a^2 + b = 0 a^2 - 2b = 0 Но такая система описывает только отдельную группу (класс матриц) в двумерном пространстве. Сравнивая две системы уравнений, мы можем сказать, что классы, к которым они принадлежат относятся друг к другу как A :> B, т.е. B является подмножеством A. Когда мы переходим от линейной алгебры к более практичному занятию - программированию. То, на интуитивном уровне, можно представлять себе что свойства класса - это его коеффициенты системы. Класс-родитель - это такая система, которая включает в себя больше решений системы, при этом включая все без исключения решения данного класса - такое отношение мы называем наследованием. Объект класса - это конкретное решение существующее в системе. Для полноты картины следует понимать, что реализации в языках программирования, как правило, стараются упростить систему, и ввиду некоторых технических ограничений не могут в точности следовать математическому описанию. Например, многие ЯП подразумевают иерархическую систему наследования, не смотря на то, что объекты одного класса могут быть получены от разных родителей, иногда не имеющих непосредственного общего предка. Мы не можем наперед знать всех возможных родителей (уравнений чьим решением является) данный объект (решение). С другой стороны, иерархии являются легко понимаемой структурой, и на бытовом уровне с ними проще работать. ЯП в большинстве случаев разрешают изменяемые объекты, т.е. объект может быть повторно использоваться в качестве другого объекта (решения).
__________________
Hell is the possibility of sanity |
Часовой пояс GMT +4, время: 23:39. |
|
« Предыдущая тема | Следующая тема » |
|
|