Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.01.2013, 05:20
Dip52 вне форума Посмотреть профиль Отправить личное сообщение для Dip52 Найти все сообщения от Dip52
  № 1  
Ответить с цитированием
Dip52

Регистрация: Aug 2012
Сообщений: 297
По умолчанию Что такое объект и класс?

Здравствуйте, помогите, пожалуйста, понять.
В чём заключается разница между объектом и классом?

Старый 01.01.2013, 06:37
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Вы видимо оптимист.
Класс это чертеж, экземпляр (скорее всего это вы подразумеваете под объектом) -- готовое изделие, если не вдаваться в подробности.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 01.01.2013, 08:08
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 3  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вы — экземпляр класса Человек Разумный. Который в свою очередь наследует (расширяет) класс Млекопитающие, например.
__________________
Reality.getBounds(this);

Старый 01.01.2013, 10:58
Korchy вне форума Посмотреть профиль Отправить личное сообщение для Korchy Найти все сообщения от Korchy
  № 4  
Ответить с цитированием
Korchy
 
Аватар для Korchy

Регистрация: May 2011
Сообщений: 301
Записей в блоге: 2
Класс - это описание того, каким должен быть объект (правильное название экземпляр, но объектом тоже называют часто) плюс возможность создавать эти самые экземпляры. То, что вы пишете в файле Class XXX {...} это и есть ваше описание класса.
Экземпляр (объект) - это просто заблокированный участок памяти, в котором хранятся инструкции, которые экземпляр может выполнять. То что вы получаете, написав var XXX = new XXX() - это и есть экземпляр.

Если проводить земные аналогии: класс - это автомобильный завод, который может производить один вид автомобилей. В нем есть спецификация этого самого автомобиля. По указанию инженера он может произвести столько автомобилей, сколько нужно. Каждый автомобиль - экземпляр/объект. В нем заложены инструкции - ездить, поворачивать, тормозить, светить фарами. В общем как-то так
__________________
interplanety

Старый 03.01.2013, 12:15
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 5  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от Korchy Посмотреть сообщение
Если проводить земные аналогии: класс - это автомобильный завод, который может производить один вид автомобилей
Привет! Мне кажется плохая аналогия.
Класс — абстрактный тип данных в объектно-ориентированном программировании, задающий общее поведение для группы объектов; модель объекта.
Завод - скорее всего запущенное приложение (игра), созданное на базе пакета классов. А класс, как писалось выше, это чертежи, калька, шаблон, "рыба" и т.д. вновь созданного экземпляра (этого класса). Класс описывает поведение (методы) и свойства будущего "изделия", а также сообщает, что надо делать при наступлении тех или иных событий.
Класс это рецепт приготовления блюда, а борщ, компот и кисель - это экземпляры разных классов. Вот их можно попробывать, пролить, съесть. А рецепт халвы, как не пробуй, во рту сладко не станет.

Старый 03.01.2013, 13:01
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 6  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
В рамках as3, класс ближе к фабрике объектов, чем к рецепту. Он сам по себе экземпляр Class с собственными методами, свойствами (статическими) и собственным конструктором.
Другое дело, что на этапе вопроса "в чем разница", лучше думать о классе как о рецепте.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 03.01.2013, 13:21
Korchy вне форума Посмотреть профиль Отправить личное сообщение для Korchy Найти все сообщения от Korchy
  № 7  
Ответить с цитированием
Korchy
 
Аватар для Korchy

Регистрация: May 2011
Сообщений: 301
Записей в блоге: 2
Цитата:
Сообщение от Жень Шень Посмотреть сообщение
А класс, как писалось выше, это чертежи, калька, шаблон, "рыба" и т.д. вновь созданного экземпляра (этого класса)
Класс это рецепт приготовления блюда
Если класс сравнивать с чертежом, какую аналогию вы проведете со статическими переменными и методами класса? У чертежа способности хранить данные и выполнять какие-то действия нет. У завода, который изготавливает машины по этим чертежам - есть.
Я сознательно использовал в аналогии термин завод, а не фабрика т.к. существуют еще и фабрики классов, чтобы не вносить путаницу больше необходимого
__________________
interplanety

Старый 03.01.2013, 13:32
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 8  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Класс - чертёж. Объект - устройство, созданное по чертежу.
__________________
Дети не должны знать о своих родителях

Старый 03.01.2013, 13:41
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 9  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Сообщение от Korchy Посмотреть сообщение
У чертежа способности хранить данные и выполнять какие-то действия нет.
Данные хранить он может (в штампе) и работяге по голове им настучать можно.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 03.01.2013, 17:08
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
На самом деле, кроме интуитовного понятия о том, что такое классы и их объекты, есть еще и сугубо математическое понимание вопроса. Я попробую в двух словах описать.

Мы можем описать нашу вселенную как многомерное пространство. Самый тривиальный пример пространстава - одномерное, это прямая, на которой мы можем отложить какие-то расстояния. Менее тривиальный пример - система декартовых координат (две прямые на которых мы откладываем расстояния), аналогично можно пойти дальше - трехмерная, четырехмерная системы и т.д.
Другое представление системы координат - это рассматривать ее не как две прямые, а как систему линейных уравнений, где подставляя значения решающие систему уравнений мы получаем результаты в нашем пространстве.
В общем случае мы представляем многомерную систему координат, как систему линейных уравнений вида:

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:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:00.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.