Каково различие между Экземпляром и Объектом?

Каково различие между Экземпляром и Объектом? Существует ли различие или нет?

74
задан Tim S. Van Haren 21 May 2010 в 20:43
поделиться

7 ответов

Экземпляр - это объект в памяти. По сути, вы создаете объект и инстанцируете его, когда используете его.

Вот хорошая статья о классах, объектах и экземплярах, он говорит о Java, но это применимо ко всем ОО.

http://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/

47
ответ дан 24 November 2019 в 11:56
поделиться

Отличный вопрос.

Я объясню это как можно проще: Допустим, у вас в корзине 5 яблок. Каждое из этих яблок представляет собой объект типа Apple, который имеет некоторые характеристики (например, большой, круглый, растет на деревьях).

С точки зрения программирования, у вас может быть класс Apple, который имеет переменные size: big, shape: round, environment: растет на деревьях. Чтобы в вашей корзине было 5 яблок, вам нужно создать экземпляр 5 яблок. Apple apple1, Apple apple2, Apple apple3 и т. Д. .

В качестве альтернативы: объекты - это определения чего-либо, экземпляры - это физические вещи.

Есть ли в этом смысл?

22
ответ дан 24 November 2019 в 11:56
поделиться

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

Экземпляр - это уникальная копия этого объекта, который вы можете использовать и делать что-нибудь с.

Представьте себе такой продукт, как компьютер.

Рабочая станция xw6400 является объектом

ВАША рабочая станция xw6400 (или рабочая станция ВАШЕЙ ЖЕНЫ xw6400) является экземпляром объекта рабочей станции xw6400

4
ответ дан 24 November 2019 в 11:56
поделиться

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

2
ответ дан 24 November 2019 в 11:56
поделиться

Допустим, вы строите стулья.

Схема, на которой показано, как построить стул и собрать его, соответствует классу программного обеспечения.

Допустим, вы построили пять стульев по образцу на этой диаграмме. Точно так же вы можете создать пять программных объектов в соответствии с шаблоном в классе.

У каждого стула есть уникальный номер, нанесенный на дно сиденья, чтобы идентифицировать каждый конкретный стул. Стул 3 - это один из экземпляров объекта стул. Аналогично, ячейка 3 памяти может содержать один экземпляр программного объекта.

Итак, экземпляр (стул 3) - это единственное уникальное, конкретное представление объекта (стул).

8
ответ дан 24 November 2019 в 11:56
поделиться

Объектом может быть класс, скажем, у вас есть класс под названием баскетбол.

но вы хотите иметь несколько баскетбольных мячей, поэтому в вашем коде вы создаете более одного баскетбольного мяча

, например, баскетбол1 и баскетбол2. Затем вы запускаете свое приложение. Теперь у вас есть 2 экземпляра объектного баскетбола.

0
ответ дан 24 November 2019 в 11:56
поделиться

Экземпляр и объект взяты из Объектно-ориентированного программирования.

Для некоторых языков программирования, таких как Java, C++ и Smalltalk, важно описывать и понимать код. В других языках, используемых в структурном программировании, этой концепции не существует.

Это взгляд со стороны Структурного программирования. На самом деле нет никакой существенной разницы, которая отнимала бы у вас много времени. Возможно, есть какой-то причудливый язык, о котором некоторые люди могут писать много места, но в конце концов, что касается кодера, разработчика, программиста, архитектора, экземпляр класса и объект означают одно и то же и часто могут использоваться взаимозаменяемо. За всю свою карьеру я не встречал никого, кто бы придирался и тратил полчаса на то, чтобы указать на различия, потому что их на самом деле нет. Время лучше потратить на другие разработки".

UPDATE Что касается Swift, вот что предпочитает Apple, придумавшая Swift:

Экземпляр класса традиционно называется объектом. Однако, классы и структуры в Swift гораздо ближе по функциональности, чем в других языках, и большая часть этой главы описывает функциональность, которая может применяться к экземплярам как класса, так и структуры. Поскольку этого используется более общий термин экземпляр.

50
ответ дан 24 November 2019 в 11:56
поделиться