Для некоторых языков программирования, таких как Java, C ++ и Smalltalk, важно описывать и понимать код. В других языках, используемых в структурированном программировании, этой концепции нет.
Это взгляд из Структурного программирования. Нет никакой реальной существенной разницы, которая должна занимать слишком много времени. Может быть какой-нибудь причудливый язык, на котором некоторые люди могут занять много места, но, в конце концов, с точки зрения кодера, разработчика, программиста, архитектора, экземпляр класса и объект означает одно и то же и часто может использоваться как синонимы . Я никогда в своей карьере не встречал никого, кто был бы разборчивым и потратил бы полчаса, пытаясь указать на различия, потому что на самом деле их нет. Время лучше потратить на другие разработки.
ОБНОВЛЕНИЕ Что касается Swift, то вот что предпочитает Apple, изобравшая Swift:
Экземпляр класса традиционно известен как объект. Однако классы и структуры Swift гораздо ближе по функциональности, чем в других языках, и большая часть этой главы описывает функциональность, которая может применяться к экземплярам класса или типа структуры. Из-за этого используется более общий термин «экземпляр».
Я объясню это как можно проще: допустим, у вас в корзине 5 яблок. Каждое из этих яблок является объектом типа Apple, который имеет некоторые характеристики (например, большой, круглый, растет на деревьях).
В терминах программирования у вас может быть класс под названием Apple, который имеет переменные size: big, shape: round, environment: растет на деревьях. Чтобы в вашей корзине было 5 яблок, вам нужно создать экземпляр 5 яблок. Apple apple1, Apple apple2, Apple apple3 etc....
В качестве альтернативы: объекты - это определения чего-либо, экземпляры - это физические вещи.
сказав, что экземпляр - это ссылка на объект, я действительно многое прояснил.
John C
4
@JohnC Не должно, потому что это неверно. Объект - это экземпляр класса. Это все, что нужно сделать.
Marquis of Lorne
8
Допустим, вы строите стулья.
Схема, на которой показано, как построить стул и собрать его, соответствует классу программного обеспечения.
Допустим, вы построили пять стульев по схеме на этой схеме. Точно так же вы можете создать пять программных объектов в соответствии с шаблоном в классе.
У каждого стула есть уникальный номер, нанесенный на дно сиденья, чтобы идентифицировать каждый конкретный стул. Стул 3 - это один из примеров выкройки стула. Аналогично, ячейка 3 памяти может содержать один экземпляр программного шаблона.
Объекты и экземпляры в основном одинаковы; но есть очень небольшая разница. Если Carэто класс, 3 Cars - это 3 разных объекта. Все эти объекты являются экземплярами. Итак, эти 3 машины являются объектами из экземпляров Carкласса.
Но слово «экземпляр» может также означать «экземпляр структуры». Но объект только для классов.
Все объекты являются экземплярами. Не все экземпляры должны быть объектами. Экземпляры могут быть «экземплярами структуры» или «объектами». Надеюсь, это поможет вам понять разницу.
Объект - это конструкция, нечто статическое, обладающее определенными функциями и характеристиками, такими как свойства и методы, это может быть что угодно (строка, элемент управления пользователя и т. Д.)
Экземпляр - это уникальная копия этого объекта, которую вы можете использовать и делать с ней.
Представьте себе продукт, похожий на компьютер.
Рабочая станция xw6400 - это объект
ВАША рабочая станция xw6400 (или рабочая станция xw6400 ВАШЕЙ ЖЕНЫ) является экземпляром объекта рабочей станции xw6400
Экземпляр - это конкретное представление объекта. Объект - это универсальная вещь, а экземпляр - это отдельный объект, созданный в памяти. Обычно экземпляру присваиваются значения, присваиваемые его свойствам, что отличает его от других экземпляров данного типа объекта.
Если мы увидим определение объекта и объекта-экземпляра -
Память, выделенная для члена класса во время выполнения, называется объектом, или объект является экземпляром класса.
Давайте посмотрим определение экземпляра -
Память, выделенная для Any во время выполнения, называется переменной экземпляра.
Теперь поймите значение любого выделения памяти во время выполнения, которое происходит в C также через Malloc, Calloc, Realloc, например:
struct p
{
}
p *t1
t1=(p) malloc(sizeof(p))
Итак, здесь мы также выделяем выделение памяти времени выполнения, но здесь мы вызываем как экземпляр, поэтому t1 является экземпляром, здесь мы не можем сказать t1 как объект, поэтому каждый объект является экземпляром класса, но каждый экземпляр не является объектом.
Не могу поверить, кроме одного парня, никто не использовал код, чтобы объяснить это, позвольте мне тоже попробовать!
// Design Class
class HumanClass {
var name:String
init(name:String) {
self.name = name
}
}
var humanClassObject1 = HumanClass(name: "Rehan")
Теперь левая сторона, то есть: «humanClassObject1» - это объект, а правая сторона, например: HumanClass (имя: «Rehan») - это экземпляр этого объекта.
var humanClassObject2 = HumanClass(name: "Ahmad") // again object on left and it's instance on the right.
Таким образом, экземпляр содержит определенные значения для этого объекта, а объекты содержат местоположение в памяти (во время выполнения).
Помните известное утверждение «ссылка на объект не установлена на экземпляр объекта», это означает, что у неинициализированных объектов нет экземпляра. В некоторых языках программирования, таких как swift, компилятор не позволит вам даже создать класс, у которого нет возможности инициализировать все его члены (переменные, например: имя, возраст и т. Д.), Но на некоторых языках вы можете сделать это:
// Design Class
class HumanClass {
var name:String // See we don't have any way to initialise name property.
}
И ошибка будет отображаться только во время выполнения, когда вы попытаетесь сделать что-то вроде этого:
var myClass = HumanClass()
print(myClass.name) // will give, object reference not set to an instance of the object.
Эта ошибка указывает на то, что конкретные значения (для переменных \ свойства) - это «ЭКЗЕМПЛЯР», как я пытался объяснить это выше! И объект, то есть: «myClass», содержит ячейку памяти (во время выполнения).
Когда объявляется переменная пользовательского типа (класса), создается только ссылка, которая называется объектом. На этом этапе этому объекту не выделяется память . Он действует как указатель (на место, где объект будет храниться в будущем). Этот процесс называется «Декларация».
Employee e; // e is an object
С другой стороны, когда переменная настраиваемого типа объявляется с использованием newоператора, который выделяет память в куче этому объекту и возвращает ссылку на выделенную память. Этот объект, который теперь называется экземпляром . Этот процесс называется «создание экземпляра».
Employee e = new Employee(); // e is an instance
С другой стороны, в некоторых языках, таких как Java, объект эквивалентен экземпляру, как видно из строки, написанной в документации Oracle по Java :
Примечание. Фраза «создание экземпляра класса» означает то же самое, что и «создание объекта». Когда вы создаете объект, вы создаете «экземпляр» класса, следовательно, «инстанцируете» класс.
каждый объект считается экземпляром своего класса, но каждый экземпляр класса имеет свое собственное значение для каждого атрибута. intances разделяет имя атрибута и операцию со своими интансами класса, но объект содержит неявную ссылку на его в классе
Класс: Класс - это предварительный план. Объект: это копия класса. Экземпляр: это переменная, которая используется для хранения адреса памяти объекта.
Очень простой аналитический пример
Классный дом -> План дома. Но вы не можете жить на свету. Вам нужен физический дом, который является экземпляром класса, в котором вы будете жить. Т.е. фактический адрес объекта - это экземпляр. Экземпляры представляют собой объекты.
Как только вы создаете экземпляр класса (используя new), этот экземпляр становится объектом. Объект - это то, что может соответствовать принципам инкапсуляции, полиморфизма, абстракции объектно-ориентированного программирования и реальной вещи, с которой программа взаимодействует, чтобы использовать члены экземпляра, определенные в классе. Объект содержит члены экземпляра (нестатические члены).
Таким образом, экземпляр класса - это объект. Слово «экземпляр» используется, когда вы говорите о происхождении, из которого он родился, он будет более ясным, если вы скажете «экземпляр класса» по сравнению с «объектом класса» (хотя последнее можно использовать).
Java - это объектно-ориентированный язык программирования (ООП). Это означает, что все в Java, кроме примитивных типов, является объектом.
Теперь объекты Java похожи на объекты реального мира. Например, мы можем создать объект автомобиля в Java, который будет иметь такие свойства, как текущая скорость и цвет; и поведение вроде: ускоряйся и паркуйся.
Это Объект .
С другой стороны, экземпляр - это уникально инициализированная копия того объекта, который выглядит так Car car = new Car().
Что касается разницы между an objectи an instance, я не думаю, что существует какой-либо консенсус.
Мне кажется, что люди меняют это в значительной степени взаимозаменяемо в статьях, сообщениях в блогах, книгах или разговорах.
На мой взгляд, объект - это общая и живая сущность в памяти, заданная языком, на котором он используется. Точно так же, как Objectкласс в Java. Нас не очень заботит его тип или что-либо еще, что с ним связано, независимо от того, управляется ли он контейнером или нет.
An instance- это objectно, связанное с типом, например this method accepts Foo instances, или you can not put Animal instances in an instance of
a List of Vehicles.
objects, например, locksсвязаны с ними, а не instances, тогда как instances имеют методы. objectsсобираются мусором, а не instanceс.
Но, как я уже сказал, это только то, как я это вижу, и я не думаю, что есть какая-либо организация, к которой мы можем обратиться за стандартным определением между ними, и у всех в значительной степени будет свое немного другое понимание / определения (конечно, в определенных пределах) .
Это означало бы, что объект является экземпляром конструктора классов?
уличный парад
думайте об объекте как о чертеже. скажем, у нас есть план баскетбола, это класс. когда баскетбольный мяч создан и сделан, он теперь существует, так что это будет означать, что у нас есть 1 экземпляр объекта баскетбол. если мы построим еще один баскетбольный мяч из объекта (чертежа). теперь у нас есть 2 экземпляра баскетбола. Всегда есть только 1 объект, но мы можем создать много экземпляров этого объекта.
Darxval
@Darxval, тогда что такое класс
Чианит Сингх
-3
Объект относится к классу, а экземпляр относится к объекту. Другими словами, экземпляр - это копия объекта с определенными значениями в нем.
Ответы:
Экземпляр и объект взяты из объектно-ориентированного программирования .
Для некоторых языков программирования, таких как Java, C ++ и Smalltalk, важно описывать и понимать код. В других языках, используемых в структурированном программировании, этой концепции нет.
Это взгляд из Структурного программирования. Нет никакой реальной существенной разницы, которая должна занимать слишком много времени. Может быть какой-нибудь причудливый язык, на котором некоторые люди могут занять много места, но, в конце концов, с точки зрения кодера, разработчика, программиста, архитектора, экземпляр класса и объект означает одно и то же и часто может использоваться как синонимы . Я никогда в своей карьере не встречал никого, кто был бы разборчивым и потратил бы полчаса, пытаясь указать на различия, потому что на самом деле их нет. Время лучше потратить на другие разработки.
ОБНОВЛЕНИЕ Что касается Swift, то вот что предпочитает Apple, изобравшая Swift:
источник
Отличный вопрос.
Я объясню это как можно проще: допустим, у вас в корзине 5 яблок. Каждое из этих яблок является объектом типа Apple, который имеет некоторые характеристики (например, большой, круглый, растет на деревьях).
В терминах программирования у вас может быть класс под названием Apple, который имеет переменные size: big, shape: round, environment: растет на деревьях. Чтобы в вашей корзине было 5 яблок, вам нужно создать экземпляр 5 яблок.
Apple apple1, Apple apple2, Apple apple3 etc...
.В качестве альтернативы: объекты - это определения чего-либо, экземпляры - это физические вещи.
Имеет ли это смысл?
источник
Экземпляр: экземпляр означает просто создание ссылки (копии).
object: означает, что место в памяти связано с объектом (является исполняемой сущностью класса) с помощью оператора new.
Проще говоря, Instance относится к копии объекта в определенное время, тогда как object относится к адресу памяти класса.
источник
Допустим, вы строите стулья.
Схема, на которой показано, как построить стул и собрать его, соответствует классу программного обеспечения.
Допустим, вы построили пять стульев по схеме на этой схеме. Точно так же вы можете создать пять программных объектов в соответствии с шаблоном в классе.
У каждого стула есть уникальный номер, нанесенный на дно сиденья, чтобы идентифицировать каждый конкретный стул. Стул 3 - это один из примеров выкройки стула. Аналогично, ячейка 3 памяти может содержать один экземпляр программного шаблона.
Итак, экземпляр (стул 3) - это единственное уникальное, конкретное проявление рисунка стула.
источник
Объект :
Это общий термин, в основном это пакет программного обеспечения, который имеет состояние (переменные) и поведение (методы).
Класс :
Чертеж (шаблон) для экземпляра объекта - это уникальный объект, например, вы создаете объект два раза, что означает, что вы создали два экземпляра
Приведу пример
Пример объекта :
Студент s1 = новый студент («Мартин»); Студент s2 = новый студент («Кумар»);
S1, s2 имеют объект класса Student
Экземпляр :
s1 и s2 - экземпляры объекта student, они уникальны .
его также можно назвать ссылкой .
в основном s1 и s2 - это переменные, которым назначен объект
источник
Объекты и экземпляры в основном одинаковы; но есть очень небольшая разница. Если
Car
это класс, 3Car
s - это 3 разных объекта. Все эти объекты являются экземплярами. Итак, эти 3 машины являются объектами из экземпляровCar
класса.Но слово «экземпляр» может также означать «экземпляр структуры». Но объект только для классов.
Все объекты являются экземплярами. Не все экземпляры должны быть объектами. Экземпляры могут быть «экземплярами структуры» или «объектами». Надеюсь, это поможет вам понять разницу.
источник
Объект - это конструкция, нечто статическое, обладающее определенными функциями и характеристиками, такими как свойства и методы, это может быть что угодно (строка, элемент управления пользователя и т. Д.)
Экземпляр - это уникальная копия этого объекта, которую вы можете использовать и делать с ней.
Представьте себе продукт, похожий на компьютер.
Рабочая станция xw6400 - это объект
ВАША рабочая станция xw6400 (или рабочая станция xw6400 ВАШЕЙ ЖЕНЫ) является экземпляром объекта рабочей станции xw6400
источник
Этот ответ может показаться банальным, но беспокоиться о различиях между экземпляром и объектом - уже банальный город.
Я думаю, что лучше всего это изображено в javascript:
стихи
источник
Экземпляр - это конкретное представление объекта. Объект - это универсальная вещь, а экземпляр - это отдельный объект, созданный в памяти. Обычно экземпляру присваиваются значения, присваиваемые его свойствам, что отличает его от других экземпляров данного типа объекта.
источник
Если мы увидим определение объекта и объекта-экземпляра -
Память, выделенная для члена класса во время выполнения, называется объектом, или объект является экземпляром класса.
Давайте посмотрим определение экземпляра -
Память, выделенная для Any во время выполнения, называется переменной экземпляра.
Теперь поймите значение любого выделения памяти во время выполнения, которое происходит в C также через Malloc, Calloc, Realloc, например:
Итак, здесь мы также выделяем выделение памяти времени выполнения, но здесь мы вызываем как экземпляр, поэтому t1 является экземпляром, здесь мы не можем сказать t1 как объект, поэтому каждый объект является экземпляром класса, но каждый экземпляр не является объектом.
источник
Объект - экземпляр класса, который имеет собственное состояние и доступ ко всему поведению, определенному его классом.
Экземпляр - ссылка на область памяти для этого конкретного класса.
источник
Не могу поверить, кроме одного парня, никто не использовал код, чтобы объяснить это, позвольте мне тоже попробовать!
Теперь левая сторона, то есть: «humanClassObject1» - это объект, а правая сторона, например: HumanClass (имя: «Rehan») - это экземпляр этого объекта.
Таким образом, экземпляр содержит определенные значения для этого объекта, а объекты содержат местоположение в памяти (во время выполнения).
Помните известное утверждение «ссылка на объект не установлена на экземпляр объекта», это означает, что у неинициализированных объектов нет экземпляра. В некоторых языках программирования, таких как swift, компилятор не позволит вам даже создать класс, у которого нет возможности инициализировать все его члены (переменные, например: имя, возраст и т. Д.), Но на некоторых языках вы можете сделать это:
И ошибка будет отображаться только во время выполнения, когда вы попытаетесь сделать что-то вроде этого:
Эта ошибка указывает на то, что конкретные значения (для переменных \ свойства) - это «ЭКЗЕМПЛЯР», как я пытался объяснить это выше! И объект, то есть: «myClass», содержит ячейку памяти (во время выполнения).
источник
Когда объявляется переменная пользовательского типа (класса), создается только ссылка, которая называется объектом. На этом этапе этому объекту не выделяется память . Он действует как указатель (на место, где объект будет храниться в будущем). Этот процесс называется «Декларация».
С другой стороны, когда переменная настраиваемого типа объявляется с использованием
new
оператора, который выделяет память в куче этому объекту и возвращает ссылку на выделенную память. Этот объект, который теперь называется экземпляром . Этот процесс называется «создание экземпляра».С другой стороны, в некоторых языках, таких как Java, объект эквивалентен экземпляру, как видно из строки, написанной в документации Oracle по Java :
источник
каждый объект считается экземпляром своего класса, но каждый экземпляр класса имеет свое собственное значение для каждого атрибута. intances разделяет имя атрибута и операцию со своими интансами класса, но объект содержит неявную ссылку на его в классе
источник
Класс: Класс - это предварительный план. Объект: это копия класса. Экземпляр: это переменная, которая используется для хранения адреса памяти объекта.
Очень простой аналитический пример
Классный дом -> План дома. Но вы не можете жить на свету. Вам нужен физический дом, который является экземпляром класса, в котором вы будете жить. Т.е. фактический адрес объекта - это экземпляр. Экземпляры представляют собой объекты.
источник
Как только вы создаете экземпляр класса (используя new), этот экземпляр становится объектом. Объект - это то, что может соответствовать принципам инкапсуляции, полиморфизма, абстракции объектно-ориентированного программирования и реальной вещи, с которой программа взаимодействует, чтобы использовать члены экземпляра, определенные в классе. Объект содержит члены экземпляра (нестатические члены).
Таким образом, экземпляр класса - это объект. Слово «экземпляр» используется, когда вы говорите о происхождении, из которого он родился, он будет более ясным, если вы скажете «экземпляр класса» по сравнению с «объектом класса» (хотя последнее можно использовать).
Также можно прочитать раздел «Внутренние классы» этого java-документа о вложенных классах - https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
источник
Java - это объектно-ориентированный язык программирования (ООП). Это означает, что все в Java, кроме примитивных типов, является объектом.
Теперь объекты Java похожи на объекты реального мира. Например, мы можем создать объект автомобиля в Java, который будет иметь такие свойства, как текущая скорость и цвет; и поведение вроде: ускоряйся и паркуйся.
Это Объект .
С другой стороны, экземпляр - это уникально инициализированная копия того объекта, который выглядит так
Car car = new Car()
.Ознакомьтесь с ним, чтобы узнать больше о классах и объектах Java.
источник
Быстрый и простой ответ
источник
Что касается разницы между an
object
и aninstance
, я не думаю, что существует какой-либо консенсус.Мне кажется, что люди меняют это в значительной степени взаимозаменяемо в статьях, сообщениях в блогах, книгах или разговорах.
На мой взгляд, объект - это общая и живая сущность в памяти, заданная языком, на котором он используется. Точно так же, как
Object
класс вJava
. Нас не очень заботит его тип или что-либо еще, что с ним связано, независимо от того, управляется ли он контейнером или нет.An
instance
- этоobject
но, связанное с типом, напримерthis method accepts Foo instances
, илиyou can not put Animal instances in an instance of a List of Vehicles
.object
s, например,locks
связаны с ними, а неinstance
s, тогда какinstance
s имеют методы.objects
собираются мусором, а неinstance
с.Но, как я уже сказал, это только то, как я это вижу, и я не думаю, что есть какая-либо организация, к которой мы можем обратиться за стандартным определением между ними, и у всех в значительной степени будет свое немного другое понимание / определения (конечно, в определенных пределах) .
источник
Объект - это общая вещь, например, возьмите линейную функцию в математике.
ax + b - это объект, а 3x + 2 - это экземпляр этого объекта
Объект <<< Экземпляр
Общие <<< Особые
Больше в этом нет ничего
источник
Объект может быть классом, скажем, у вас есть класс под названием баскетбол.
но вы хотите иметь несколько баскетбольных мячей, поэтому в своем коде вы создаете более одного баскетбольного мяча
скажем, баскетбол1 и баскетбол2. Затем вы запускаете свое приложение. Теперь у вас есть 2 экземпляра объектного баскетбола.
источник
Объект относится к классу, а экземпляр относится к объекту. Другими словами, экземпляр - это копия объекта с определенными значениями в нем.
источник