Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/103: Рейтинг темы: голосов - 103, средняя оценка - 4.74
0 / 0 / 1
Регистрация: 04.03.2018
Сообщений: 75

Объект и экземпляр класса. Есть ли разница?

29.06.2018, 19:38. Показов 21826. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разъясните пожалуйста, есть ли разница в понятиях объект и экземпляр класса?
С экземпляром класса все ясно, а вот понятие объект это то же что и экземпляр? Или есть какое то другое определение?
Если есть разница, хотелось пример.
Гуглил, единого ответа не нашел.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.06.2018, 19:38
Ответы с готовыми решениями:

Экземпляр и объект, в чем разница?
Цитата из книги «Полный справочник по С#»Г.Шилдт До этого я думал что экземпляр класса и объект класса это одно и тоже. Объясните...

Создание статической функции класса, которая принимает экземпляр этого же класса как объект
Привет. Есть такой код class Model { public: Model(); Model(int verticesSize, int facesSize); ~Model(); static void...

Указатель на объект, или экземпляр класса?
Здравствуйте Уважаемые программисты! Недавно я начал изучать программирование с использованием С++. Ранее не программировал. В качестве...

23
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
29.06.2018, 19:46
Trunker, это очень правильный вопрос.
Экземпляр - нестатическая часть класса.
Существуют еще статические члены класса в статической части класса.
Очень часто объект приравнивают к экземпляру. Это нормально. Вы этого человека поймете.


Так вот. Объект - это объединение экземпляра и статической части класса.

Например, у 100 объектов одного класса будет одинаковая статическая часть.

------
Понимание смысла кишок класса пригодится вам и в изучении JavaScript. Небольшое отличие от C# - в JavaScript кишки вылезают наружу. Такой себе язык зомби.
1
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
29.06.2018, 19:57
amr-now, имхо Вы немного неверно говорите.
C#
1
New object();  // создание Объекта
Объект - то же самое, что и инстанс, т.е экземпляр.
А вот тип - статика + экземплярные члены.

Добавлено через 3 минуты
Trunker, нет разницы.
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
29.06.2018, 20:06
При изучении JavaScript становится лучше понятен смысл.
Если у C# нестатическую часть можно считать единым целым в виде слоеного торта из предков-потомков, и статическую часть в виде как бы единой по смыслу стопки раздельных тарелок статических слоев.

То в JavaScript эти статические части сцепляются вагончиками, образуя локомотив (нестатическая часть) с очень длинным хвостом вагончиков статических частей.

Вот такой он объект, панимаишь…
0
0 / 0 / 1
Регистрация: 04.03.2018
Сообщений: 75
29.06.2018, 20:15  [ТС]
Цитата Сообщение от IamRain Посмотреть сообщение
экземплярные члены.
имеется ввиду как не статическая составляющая класса?

Цитата Сообщение от IamRain Посмотреть сообщение
А вот тип - статика + экземплярные члены.
не много не до понимаю, если класс это конструкция языка, состоящий из полей и методов(образно), они могут быть статичными и нет, т.е. по сути подходит под описания типа, тогда назревает вопрос, в чем разница между типом и классом?
0
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
29.06.2018, 20:18
Действительно, не совсем однозначный вопрос. Я тоже считал, что это одно и то же, за исключением того, что объект ещё может быть экземпляром типа-значения, но когда-то наткнулся на первое видео ITVDN базового курса по C# (доступно на YouTube), где на 35 минуте сказано, что "объекты содержат в себе статические поля и все методы", а "экземпляры содержат нестатические поля".
Цитата Сообщение от Trunker Посмотреть сообщение
в чем разница между типом и классом
Типом может быть не только класс, но и, например, структура или интерфейс.
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
29.06.2018, 20:21
Trunker, у типа есть как минимум два понимания.

1) Тип C# как объединение понятий класс+структура+перечисление+делегат…
2) Философское понимание типа - ярлык который можно прилепить к переменной.

Но там очень длинная и мутная история. Придётся долго и нудно изучать, что такое DDD, компонентно-ориентированное программирование, утиная типизация и так далее. Полгода придется только вникать.
1
0 / 0 / 1
Регистрация: 04.03.2018
Сообщений: 75
29.06.2018, 20:23  [ТС]
Цитата Сообщение от amr-now Посмотреть сообщение
2) Философское понимание типа - ярлык который можно прилепить к переменной.
во) так та проще)
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
29.06.2018, 20:30
Trunker, кстати ещё один мутный вопрос:
что такое o.Method() ?

Объект выполняет действие? А вот нет.

На самом деле мы посылаем сообщение Method() объекту через контактную точку о

То есть мы взаимодействуем с невидимым экземпляром через о просьбами. Это тоже сложно понять.
(из книги Банды четырех, касательно Smalltalk)
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
29.06.2018, 20:53
Лучший ответ Сообщение было отмечено Trunker как решение

Решение

Цитата Сообщение от Trunker Посмотреть сообщение
имеется ввиду как не статическая составляющая класса?
Именно. Можно рассматривать как еще одну пачку экземплярных данных. Статическая же у всех - общая.

Цитата Сообщение от Trunker Посмотреть сообщение
не много не до понимаю, если класс это конструкция языка, состоящий из полей и методов(образно), они могут быть статичными и нет, т.е. по сути подходит под описания типа, тогда назревает вопрос, в чем разница между типом и классом?
Ни в чем, снова. По крайней мере на данном этапе изучения вам можно считать именно так. Тип = данные + поведение. А под словом тип уже можно подставлять что вам ЯП может предоставить (Класс, структура и т.д.).


Цитата Сообщение от VladPVS Посмотреть сообщение
где на 35 минуте сказано, что "объекты содержат в себе статические поля и все методы", а "экземпляры содержат нестатические поля".
Вот насмотритесь всяких видюшек, а потом перенимаете их дурацкую терминологию.

Только с практикой и среди более опытных людей.
Ну либо грамотно загуглить и сопоставить множество источников...

Цитата Сообщение от amr-now Посмотреть сообщение
На самом деле мы посылаем сообщение Method() объекту через контактную точку о
На практике эти знания абсолютно бесполезны. Это как знать ответ на вопрос, чем отличается закрытый обобщенный тип от открытого обобщенного типа. А толку?
1
0 / 0 / 1
Регистрация: 04.03.2018
Сообщений: 75
29.06.2018, 21:02  [ТС]
Цитата Сообщение от VladPVS Посмотреть сообщение
"объекты содержат в себе статические поля и все методы"
Но "объект" же не может содержать статические поля (ну имеется ввиду на прямую), только методы объекта могут использовать статику. Или я что то не так описал?)
Point p = new Point(); т.е. если в классе Point есть статические поля, то p можно считать объектом?А если нет то это экземпляр?
0
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
29.06.2018, 21:06
Цитата Сообщение от IamRain Посмотреть сообщение
Вот на смотритесь всяких видюшек, а потом перенимаете их дурацкую терминологию.
Я ведь нигде и не писал, что поменял своё мнение после просмотра этого видео, всего-лишь упомянул, что существует и альтернативное, хотя мне оно и не принадлежит.
Trunker, то, что я процитировал автора видео, не означает, что я с ним согласен.
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
29.06.2018, 21:08
IamRain, джуниору бесполезны. А вот как начнет проектировать своё, тогда полезны.

Хотя и перегибов в другую сторону немало. В кровавой Java тонны примитивного кода, сиди лет пять и размазывай лапшу в своем секторе...

Добавлено через 1 минуту
Цитата Сообщение от Trunker Посмотреть сообщение
Но "объект" же не может содержать статические поля (ну имеется ввиду на прямую), только методы объекта могут использовать статику.
Кушаем мы тоже как бы ртом ))
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
29.06.2018, 21:20
Цитата Сообщение от amr-now Посмотреть сообщение
Так вот. Объект - это объединение экземпляра и статической части класса.
а можете привести пример из доков или хотя бы литературы подтверждающий ваши слова?
Цитата Сообщение от amr-now Посмотреть сообщение
При изучении JavaScript становится лучше понятен смысл.
и каким боком тут javascript тоже не совсем ясно)
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
29.06.2018, 21:35
Цитата Сообщение от КОП Посмотреть сообщение
можете привести пример из доков
Microsoft в "Объекты (Руководство по программированию на C#)" приводит упрощенное определение для детского сада:

"An object is basically a block of memory that has been allocated and configured according to the blueprint. A program may create many objects of the same class. Objects are also called instances, and they can be stored in either a named variable or in an array or collection. "

Так что понимаю топикстартера - в литературных источниках постоянно увиливают от ответа.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
29.06.2018, 21:38
Цитата Сообщение от amr-now Посмотреть сообщение
упрощенное определение для детского сада
согласно этому определению объект == экземпляр
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
29.06.2018, 21:41
КОП, согласно упрощенному определению - да.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
29.06.2018, 21:45
Цитата Сообщение от amr-now Посмотреть сообщение
согласно упрощенному определению
тогда приведите официальное неупрощенное, мы же не в детском саду
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
29.06.2018, 21:47
КОП, я не помню, откуда я помню, что объект является совокупностью состояния и поведения. Сорри. Сейчас некогда копать литературу.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
29.06.2018, 21:49
Цитата Сообщение от amr-now Посмотреть сообщение
Сейчас некогда копать литературу.
Ну я покопал, не нашел. Потому и прошу пруф. А "я помню" для меня слабый аргумент, тут уж извините
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.06.2018, 21:49
Помогаю со студенческими работами здесь

Ссылка на объект не указывает на экземпляр класса
Сделал программу по работе с матрицей. Сначало пользователь вводит размерность матрицы -> кнопка сохранить размер матрицы -> вводятся...

Ссылка на объект не указывает на экземпляр класса
Сделал консольное приложение, дабы проверить работу свеженаписаного кода. Написал работает. Решил, что пора сделать его на событие Click...

Ссылка на объект не указывает на экземпляр класса
Всем доброго времени суток! Очень нужна ваша помощь, при выполнении следующего кода выдает ошибку "Ссылка на объект не указывает на...

Как уничтожить экземпляр класса (объект)?
Я столкнул с такой проблемой. Я не могу понять как удалять объекты класса(экземляры). Читая интернет я вижу что "мусорщик" должен...

Ссылка на объект не указывает на экземпляр класса
Я суть ошибки понимаю, но так как Я новичёк не могу индефицировать где же конкретно Я не сделал указание на экземпляр? Кода не много:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru