Різниця між об’єктом та екземпляром


83

Я знаю, що таке запитання вже задавали раніше , але я все ще вважаю, що відповідь занадто неоднозначна для мене (і, розширення, деяких / більшості початківців), щоб зрозуміти.

Я намагався навчити себе ширшим поняттям програмування, ніж процедурні та базові ООП. Я розумію конкретні концепції ООП (ви створюєте клас, який має дані (члени) та функції (методи), а потім створює екземпляр цього класу під час виконання, щоб насправді робити щось подібне).

Я думаю, що я маю уявлення про те, що таке клас ( такий собі проект дизайну для екземпляра, який буде створений за своєю подобою під час компіляції ). Але якщо це так, то що таке об’єкт? Я також знаю, що в мовах, що базуються на прототипах, це може ще більше затьмарити, але, можливо, саме тому в моїй свідомості повинна бути чітка різниця між об’єктом та екземпляром.

Крім цього, я борюся з поняттями "об'єкт" та "екземпляр". Багато джерел, які я прочитав (включаючи відповіді в SO), говорять, що вони здебільшого однакові і що різниця полягає в семантиці. Інші люди кажуть, що між ними існує справжня концептуальна різниця.

Чи можуть експерти, що працюють в SO, допомогти новачкові отримати той момент "ага", щоб рухатися вперед у світі ООП?

Примітка: це не домашнє завдання, я не ходжу до школи - однак, я думаю, це допомогло б людям, які шукають допомогу щодо домашнього завдання.


1
Цікаво, чи не хотіли б Ви додати кілька додаткових запитань на кшталт: "чи всі екземпляри об’єкти?" , і, "всі екземпляри об'єктів?" Якщо обидва "так", то ми можемо підтвердити, що вони однакові.
WesternGun

Після створення екземпляра класу (за допомогою new) ця екземплярна річ стає об’єктом. Об'єкт - це те, що може дотримуватися інкапсуляції, поліморфізму, принципів абстрагування об'єктно-орієнтованого програмування та реальної речі, з якою програма взаємодіє для споживання членів екземпляра, визначених у класі. Об'єкт містить члени екземпляра (нестатичні члени). Таким чином, екземпляр класу є об'єктом. Слово "екземпляр" використовується, коли ви маєте на увазі походження, звідки воно народилося, більш зрозуміло, якщо ви кажете "екземпляр класу" порівняно з "об'єктом класу"
p_champ

Відповіді:


131

План проекту будинку - це як опис класу. Усі будинки, побудовані за цим планом, є об'єктами цього класу. Даний будинок є екземпляром.


6
Крім того, є вулиця з мого рідного міста, яка має трохи місцевої слави, оскільки там є 8 однаково побудованих цегляних будинків поспіль (до появи концепції «житлового розвитку»). Тож я можу це дуже гарно уявити. «Клас» - це те, що склав архітектор. Готові будинки є "об'єктами", оскільки всі вони однаково побудовані. Кожен будинок є "екземпляром", тому що з тих пір до них (і можуть продовжувати) по-різному ставитись [тепер один має сайдинг: o (].
TCCV

16
А статичні методи - це як комунальні послуги, якими користуються всі будинки.
WOPR

2
Але хіба будинок, побудований за планом, не є екземпляром?
Hot Licks

1
Це означає, що першими спогадами, які займає визначення класу, є екземпляр. тоді як усі створені об'єкти називаються об'єктами.
Хафіз Шехбаз Алі

6
Хіба об’єкт та екземпляр не є абсолютно однаковими?
Praveen Kumar

42

Істина полягає в тому, що об'єктно-орієнтоване програмування часто створює плутанину, створюючи розрив між філософською стороною розвитку та фактичною механічною роботою комп'ютера. Я спробую вам порівняти ці два:

Основна концепція ООП така: Клас >> Об'єкт >> Екземпляр.

Клас = синій відбиток. Об'єкт - це справжня річ, яка побудована на основі "блакитного друку" (як будинок). Екземпляр - це віртуальна копія (але не реальна копія) об’єкта.

Більш технічне пояснення "екземпляра" полягає в тому, що це "посилання на пам'ять" або посилальна змінна. Це означає , що «екземпляр» є змінною в пам'яті, тількимає в собі адресу пам’яті об’єкта. Об'єкт, до якого він звертається, є тим самим об'єктом, екземпляром якого називають "екземпляр". Якщо у вас багато екземплярів об'єкта, ви насправді просто маєте багато змінних у місцях різниці у вашій пам'яті, у яких усі мають однакову точну адресу пам'яті - це всі адреси одного і того ж точного об'єкта. Ви ніколи не можете «змінити» екземпляр, хоча, схоже, ви можете це зробити у своєму коді. Що ви насправді робите, коли ви "змінюєте" екземпляр, це те, що ви змінюєте оригінальний об'єкт безпосередньо. В електронному вигляді процесор проходить одне зайве місце в пам'яті (посилальна змінна / екземпляр), перш ніж він змінює дані вихідного об'єкта.

Процес: процесор >> розташування пам'яті екземпляра >> розташування пам'яті оригінального об'єкта.

Зауважте, що не має значення, який екземпляр ви використовуєте - кінцевий результат завжди буде однаковим. ВСІ екземпляри продовжуватимуть зберігати ту саму точну інформацію у своїх місцях пам'яті - адресу пам'яті об’єкта - і змінюватиметься лише об’єкт.

Відносини між класом та об'єктом дещо заплутаніші, хоча з філософської точки зору це найпростіше зрозуміти (синя друкарня >> будинок). Якщо об'єкт - це фактичні дані, які зберігаються десь у пам'яті, що таке "клас"? Виявляється, що механічно об’єкт є точною копією класу. Отже, клас - це ще одна змінна в іншому місці в пам’яті, що містить ту саму точну інформацію, що і об’єкт. Зверніть увагу на різницю між відносинами:

Об'єкт - це копія класу. Екземпляр - це змінна, що містить адресу пам’яті об’єкта.

Ви також можете мати кілька об'єктів одного класу, а потім кілька екземплярів кожного з цих об'єктів. У цих випадках набори екземплярів кожного об’єкта еквівалентні за значенням, але екземпляри між об’єктами - ні. Наприклад:

Нехай клас A із класу A дозволить Object1, Object2 і Object3.

// Object1 має те саме значення, що і object2 та object3, але знаходиться в різних місцях у пам'яті.

з Object1 >> нехай obj1_Instance1, obj1_Instace2, obj1_Instance3

// всі ці екземпляри також еквівалентні за значенням і в різних місцях пам'яті. Їх значення = Object1.MemoryAddress.

тощо

Щось стає неприємнішим, коли ви починаєте вводити типи. Ось приклад використання типів з c #:

// припустимо клас Person існує Person john = new Person ();

Насправді цей код простіше проаналізувати, якщо розбити на дві частини:

Person john;
john = new Person();

У технічному мовленні перший рядок 'оголошує змінну типуЛюдина. Але що це означає ?? Загальне пояснення полягає в тому, що тепер у мене є порожня змінна, яка може містити лише об'єкт Person. Але зачекайте хвилину - це порожня змінна! У цьому розташуванні пам'яті змінних немає нічого. Виявляється, «типи» механічно безглузді. Типи спочатку були винайдені як спосіб управління даними і нічого іншого. Навіть коли ви оголошуєте примітивні типи, такі як int, str, chr (без ініціалізації), в комп'ютері нічого не відбувається. Цей дивний синтаксичний аспект програмування є частиною того, що люди отримують уявлення про те, що класи - це план об’єктів. ООП ще більше заплуталися з типами з типами делегатів, обробниками подій тощо. Я б намагався не концентруватись на них надто сильно і просто пам’ятаю, що всі вони є неправильними назвами.

Другий рядок також трохи заплутаний, оскільки робить дві речі одночасно:

Спочатку оцінюється правий бік "new Person ()". Він створює нову копію класу Person - тобто створює новий об’єкт.

Потім обчислюється ліва сторона "john =". Він перетворює Джона на посилальну змінну, надаючи йому адресу пам'яті об'єкта, який щойно був створений праворуч того самого рядка.

Якщо ви хочете стати хорошим розробником, важливо розуміти, що жодне комп’ютерне середовище ніколи не працює на основі філософських ідеалів. Комп’ютери навіть не такі логічні - вони насправді просто велика колекція проводів, склеєних між собою за допомогою базових булевих схем (переважно NAND та АБО).


32

Слово класу походить від класифікації ( A Категорія , в яку кладеться що - то ), тепер ми всі чули , що клас подібний Blueprint, але що це означає в точності? Це означає, що Клас містить Опис певної Категорії, ( я хотів би показати різницю між Класом, Об'єктом та Екземпляром на прикладі використання Java, і я б попросив читачів візуалізувати це як Історію під час читання, і якщо Ви не знайомі з java не має значення ) Отже, давайте почнемо з створення категорії, яка називається HumanBeing , тому програма Java виразить це наступним чином

class HumanBeing{ 
   /*We will slowly build this category*/ 
}

Тепер, які атрибути має HumanBeing загалом Ім'я , Вік , Зріст , Вага, наразі обмежимо себе цими чотирма атрибутами, додамо його до нашої категорії

class HumanBeing{
    private String Name;
    private int Age;
    private float Height;
    private float Weight; 

   /*We still need to add methods*/

}

Тепер кожна категорія має поведінку, наприклад категорія Собака має поведінку гавкати, діставати, катати тощо ..., Аналогічно наша категорія HumanBeing також може мати певну поведінку, наприклад, коли ми запитуємо наш HumanBeing, як вас звати / вік / вага / висота? Це має дати нам його ім'я / вік / вагу / зріст, тому в Java ми робимо це наступним чином

class HumanBeing{
    private String Name;
    private int Age;
    private float Height;
    private float Weight;  

    public HumanBeing(String Name,int Age,float Height,float Weight){
       this.Name = Name;
       this.Age  = Age;
       this.Height = Height;
       this.Weight = Weight;
    }

    public String getName(){
      return this.Name;
    }

    public int getAge(){
      return this.age;
    }

    public float getHeight(){
      return this.Height;
    }

    public float getWeight(){
      return this.Weight;
    }
}

Тепер ми додали поведінку до нашої категорії HumanBeing , тому ми можемо запитати його назву, вік, зріст, вагу, але у кого ви запитаєте ці деталі, оскільки class HumanBeingце просто категорія, це план, наприклад, архітектор робить план на папір будівлі, яку він хоче побудувати, тепер ми не можемо продовжувати жити в проекті ( опис будівлі ), ми можемо жити в будівлі лише після її побудови. Отже, тут нам потрібно зробити людину з нашої категорії, яку ми описали вище, тож як ми це робимо на Java

class Birth{
  public static void main(String [] args){
    HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);    
  }
}

Тепер у наведеному вище прикладі ми створили свою першу людину з ім’ям вік зріст вага, то що саме відбувається у наведеному вище коді? . Ми інстанцірованія нашої категорії HumanBeing тобто об'єкта створюються наш клас

Примітка: Object і Instance не є синонімами. У деяких випадках здається, що Object і Instance є синонімами, але це не так, я наведу обидва випадки

Випадок 1: Об’єкт і Екземпляр здаються синонімами.
Дозвольте трохи детальніше розказати, коли ми говоримо, що HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90); об’єкт нашої категорії створюється в купі пам’яті, і якась адреса виділяється йому, і firstHumanмістить посилання на цю адресу, тепер цей об’єкт Об'єкт HumanBeing, а також Екземпляр HumanBeing . Тут здається, що Об’єкти та Екземпляр - це синоніми, я повторюся, що це не синоніми

Давайте продовжимо нашу історію, ми створили свою першу Людину, тепер ми можемо запитати його ім'я, вік, зріст, вагу, так ми робимо це на Java

class Birth{
  public static void main(String [] args){
    HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);
    System.out.println(firstHuman.getName());
    System.out.println(firstHuman.getAge());
    ...
    ...  
  }
}

отже, ми маємо першу людину і дозволяємо рухатись пером, надаючи нашій першій людині якусь кваліфікацію, давайте зробимо його доктором, тому нам потрібна категорія під назвою доктор і надає нашому докторові якусь поведінку, тому в Java ми робимо наступне

class Doctor extends HumanBeing{
   public Doctor(String Name,int Age,float Height,float Weight){
      super(Name,Age,Height,Weight);
   }
   public void doOperation(){
    /* Do some Operation*/ 
   }

   public void doConsultation(){
    /* Do so Consultation*/
   }
}  

Тут ми використали концепцію успадкування, яка приносить деяку можливість повторного використання в коді. Кожен лікар завжди буде першим людиною, тому лікар матиме ім’я, вік, вагу, зріст, які будуть успадковані від HumanBeing замість того, щоб писати їх знову, зауважте, що ми щойно написали опис лікаря, якого ще не створили, тож давайте створимо лікаря в нашомуclass Birth

class Birth{
  public static void main(String [] args){
    Doctor firstDoctor = new Doctor("Strange",40,6,80);
    .......
    .......
    /*Assume some method calls , use of behaviour*/
    .......
    .......    
  }
}

Випадок 2: Об'єкт та Екземпляр не є синонімами
У наведеному вище коді ми можемо уявити, що ми інстансуємо нашу категорію Лікар та реалізовуємо її, тобто ми просто створюємо Об'єкт категорії Лікар , оскільки ми вже знаємо, що Об'єкт створюється в кучевій пам'яті і firstDoctorмістить посилання на цей Об’єкт у купі;

Цей конкретний Об’єкт firstDoctorвиглядає наступним чином (будь ласка, зверніть увагу, що firstDoctorв ньому є посилання на об’єкт, це не сам об’єкт)

  1. firstDoctorє об'єктомclass Doctor і екземпляром Aclass Doctor
  2. firstDoctorє не об'єктом,class HumanBeing а екземпляромclass HumanBeing

Отже, конкретний Об’єкт може бути екземпляром певного класу, але він не повинен бути об’єктом даного класу

Висновок:

Об’єкт називається Екземпляром певної категорії, якщо він задовольняє всім характеристикам цієї конкретної категорії

Приклад із реального світу буде таким: ми спочатку народилися як Люди, так уявляємо нас як Об’єкт Людини, тепер, коли ми дорослішаємо, ми беремо на себе обов’язки та вивчаємо нові навички та граємо різні ролі в житті Приклад Син, брат, дочка, батько , мамо зараз Що ми насправді? Ми можемо сказати, що ми - об'єкти людини, але випадки брата, дочки, ... тощо

Сподіваюся, це допоможе

Дякую


5
... і чому ми маємо лише 3 голоси за цю відповідь?
Пратік Амбані

13

введіть тут опис зображення

Об'єкти - це речі в пам'яті, тоді як екземпляри - це речі, що посилаються на них. На наведеному рис:

  • std (екземпляр) -> Студентський об'єкт (праворуч)
  • std1 (екземпляр) -> Студентський об'єкт (ліворуч)
  • std2 (екземпляр) -> Студентський об'єкт (ліворуч)
  • std3 (екземпляр) -> немає об'єкта (null)

4
Це чудово. Мені дуже подобається той факт, що він стає низьким. Я переглядаю, чи подобається мені це більше, ніж аналогія. Я думаю, що знання двох разом - це те, що мені справді було потрібно. за, але не впевнений, чи можу я дати вам відповідь, бо це вже було дано Джо. Хоча дякую. Це багато чого прояснює.
TCCV

Ну, отже, екземпляр - це вказівник на об’єкт? (екземпляр == змінна з адресою пам'яті?)
Stano

6
Truong, ваша відповідь неправильна і заплутана. Фактично екземпляр - це об'єкт, похідний від об'єкта базового класу. Екземпляр == об'єкт. Ця термінологія добре пояснюється, наприклад, у тій чи іншій відповіді.
Стано

@jww: Зображення - це посилання на math.hws.edu/javanotes/c5/objectsInHeap.png, якому зараз 404. Ймовірно, воно було видно на момент його публікації.
Matt Burland

6

Об'єкт - це екземпляр класу (для мов, заснованих на класах).

Я думаю, це найпростіше пояснення, яке я можу придумати.


1
Я погоджуюсь, що ваше пояснення стосується того, як я читав, але в Інтернеті є багато записів, які розрізняють їх. Я не знаю, чи неможливо відповісти на запитання такого роду, не маючи на увазі мову (нічого собі мета-питання, це питання - це клас, який не можна використовувати, не створивши його з мовою, ха-ха).
TCCV

6

Клас визначає об’єкт. Ви можете піти ще далі багатьма мовами і сказати, що інтерфейс визначає загальні атрибути та методи між об’єктами.

Об’єкт - це те, що може представляти щось у реальному світі. Коли ви хочете, щоб об'єкт насправді представляв щось у реальному світі, цей об'єкт повинен бути інстанційований. Інстанціація означає, що ви повинні визначити характеристики (атрибути) цього конкретного об'єкта, як правило, за допомогою конструктора.

Визначивши ці характеристики, ви отримаєте екземпляр об’єкта.

Сподіваюся, це все прояснить.


Я думаю, що це в основному говорить те, що сказав Джо. Виправте мене, якщо я помиляюся.
TCCV

3
Над Джо говорить, що всі будинки, побудовані за планом, є предметами. Правда. І він каже, що даний будинок є екземпляром. Правда. Але всі будинки є екземплярами, і даний будинок також є об’єктом. Він робив різницю там, де її не було. У коді необхідно розрізняти об'єкт та екземпляр на момент його побудови. Ми говоримо, що він створюється зразком, коли насправді був побудований. Поширеним запитанням може бути: Ви пам’ятали створити об’єкт? тобто якщо ви забули викликати конструктор після оголошення об’єкта.
Дерек Ліц,

1
ах, це гарна відмінність. Отже, сказати по-іншому, екземпляр - це об’єкт, який був побудований (тобто, якщо конструктор був викликаний).
TCCV

3

"Клас описує набір об’єктів, що називається його екземплярами." - Дослідницька група з вивчення Xerox, "Система Smalltalk-80", журнал Byte, том 06, номер 08, стор. 39, 1981.


2

Що таке Об'єкт?

Об'єкт - це екземпляр класу. Найкраще зрозуміти об’єкт можна, знайшовши навколо вас приклади з реального світу. Ви письмовий стіл, ваш ноутбук, ваша машина - це хороші реальні приклади об’єкта.

Об'єкти реального світу мають дві характеристики, всі вони мають стан і поведінку. Люди також є гарним прикладом об’єкта. Ми, люди, маємо стан / атрибути - ім’я, зріст, вагу та поведінку - ходити, бігати, говорити, спати, код: P.

Що таке клас?

Клас - це план або шаблон, що описує деталі об’єкта. Ці деталі саме

атрибути імен / операції стану / методи

class Car 
{
    int speed = 0;
    int gear = 1;

    void changeGear(int newGear)
    {
        gear = newGear;
    }

    void speedUp(int increment) 
    {
        speed = speed + increment;
    }

    void applyBrakes(int decrement) 
    {
        speed = speed - decrement;
    }
}

Розглянемо наведений вище приклад, поля speedі gearбудуть представляти стан об'єкта та методи changeGear, speedUpа також applyBrakesвизначатимуть поведінку об'єкта Автомобіль із зовнішнім світом.

Список літератури:


1

Я думаю, що важливо зазначити, що загалом є дві речі. Креслення та копії. Люди схильні називати ці різні речі; класи, об'єкти, екземпляри - це лише деякі імена, які люди використовують для них. Найголовніше, що є план та його копії - незалежно від їх назв. Якщо у вас вже є розуміння цих двох, просто уникайте інших речей, які вас бентежать.


0

Давайте порівняємо яблука з яблуками. Ми всі знаємо, що таке яблуко. Як це виглядає. Який він на смак. Це клас. Це визначення речі. Це те, що ми знаємо про річ.

А тепер іди знайди яблуко. Це екземпляр. Ми можемо це побачити. Ми можемо скуштувати. Ми можемо з цим щось робити. Це те, що ми маємо.

Клас = Що ми про щось знаємо. Визначення.

Об'єкт / Екземпляр = Щось, що відповідає тому визначенню, яке ми маємо і з чим можемо робити.


0

У деяких випадках термін "об'єкт" може використовуватися для опису екземпляра, але в інших випадках він використовується для опису посилання на екземпляр. Термін "екземпляр" стосується лише фактичної інстанції.

Наприклад, Список може бути описаний як сукупність об'єктів, але те, що він насправді містить, - це посилання на екземпляри об'єктів.


Тож у цьому випадку посилання - це просто заповнювач місця, який містить посилання на екземпляр? Де посилання може бути чимось на зразок адреси пам'яті?
TCCV

0

Мені завжди подобалася ідея, яка дорівнює визначенню класу як "абстрактного типу даних" . Тобто, коли ви визначали клас, ви визначаєте новий тип "чогось", його представлення типу даних, з точки зору примітивів та іншого "чогось", і його поведінку з точки зору функцій та / або методів. (Вибачте за загальність та формалізм)

Щоразу, коли ви визначали клас, ви відкриваєте нову можливість для визначення певних сутностей з його властивостями та поведінкою, коли ви створюєте екземпляр та / або створюєте з нього певний об'єкт, ви фактично матеріалізуєте цю можливість.

Іноді терміни об’єкт та екземпляри взаємозамінні. Деякі пуристи з ООП стверджуватимуть, що все є об’єктом, я не буду скаржитися, але в реальному світі ООП ми, розробники, використовуємо дві концепції:

  1. Клас: Абстрактний зразок типу даних, з якого ви можете отримувати інші ADT та створювати об’єкти.
  2. Об'єкти: Також називається екземплярами, представляє конкретні приклади структур даних та функцій, представлених даним абстрактним типом даних.

0

Об’єктно-орієнтоване програмування - це системна метафора, яка допомагає вам упорядкувати знання, з якими ваша програма повинна обробляти, таким чином, що полегшить вам розробку вашої програми. Коли ви вирішили програмувати за допомогою ООП, ви берете свої ООП-Googles і вирішуєте, що побачите проблему реального світу, оскільки багато об’єктів взаємодіють між собою, надсилаючи повідомлення. Замість того, щоб побачити хлопця за кермом автомобіля, ви бачите, як хлопець відправляє машині повідомлення із зазначенням того, що він хоче, щоб машина робила. Автомобіль є великим об'єктом, і він відповість на це повідомлення, надіславши повідомлення його двигуну або колесу, щоб мати можливість правильно відповісти на те, що водій наказав йому зробити у повідомленні, тощо ...

Після того, як ви створили свою системну метафору, і ви бачите всю реальність як об’єкти, що надсилають повідомлення, ви вирішуєте помістити все побачене, що стосується вашого проблемного домену, на ПК. Там ви помічаєте, що багато хлопців ведуть різні картки, і безглуздо програмувати поведінку кожного з них окремо, тому що всі вони поводяться однаково ... Тож ви можете сказати дві речі:

  • Всі ці хлопці поводяться однаково, тож я створу клас на ім'я Driver, який визначатиме, хто всі драйвери у світі поводяться, тому що всі вони поводяться однаково. (А ви використовуєте ООП на основі класів)
  • Або ви можете сказати "Гей!" Другий водій поводиться так само, як перший водій, за винятком того, що йому подобається їхати трохи швидше. І третій водій поводиться так само, як і перший водій, за винятком того, що йому подобається зигзаг, коли він за кермом. (І ви використовуєте прототип ООП).

Потім ви починаєте розміщувати в комп’ютері інформацію про те, як поводяться всі драйвери (або про те, як поводиться перший драйвер, і як другий і третій відрізняються від цього), а через деякий час у вас з’являється ваша програма, і ви використовуєте код для створіть три драйвери, які є моделлю, яку ви використовуєте в цьому ПК, щоб посилатися на драйвери, які ви бачили в реальному світі. Ці 3 драйвери, створені вами в ПК, є екземплярами або прототипу (насправді перший є прототипом, перший може бути самим прототипом залежно від того, як ви моделюєте речі), або класу, який ви створили. Різниця між екземпляром та об’єктом полягає в тому, що об’єкт - це метафора, яку ви використовуєте в реальному світі. Ви вирішили бачити хлопця та машину як предмети (було б неправильно стверджувати, що ви бачите їх як екземпляри), які співпрацюють між собою. А потім ви використовуєте його як натхнення для створення свого коду. Екземпляр існує лише у вашій програмі після створення прототипу або класу. "Об'єкти" існують поза ПК, оскільки їх відображення ви використовуєте для об'єднання реального світу з програмою. Він об'єднує Хлопця з екземпляром Driver, який ви створили в ПК. Отже, об’єкт та екземпляр надзвичайно пов’язані, але вони не зовсім однакові (екземпляр - це «ніжка» об’єкта в програмі, а інша «ніжка» - у реальному світі).


0

Я думаю, найкраща відповідь вже дана.

Заняття - це креслення, а об’єкти - це будівлі, або приклади цього креслення зробили трюк і для мене.

Іноді я хотів би думати, що класи - це шаблони (як у MS Word), тоді як об’єкти - це документи, що використовують шаблон.


0

Розширення одного з наведених раніше прикладів у цій темі ...

Розглянемо сценарій. Існує вимога, згідно з якою в будинку потрібно побудувати 5 будинків для житлових потреб. Всі 5 будинків мають спільну будівельну архітектуру. Архітектура будівлі - це клас . Будинок - це об’єкт . Кожен будинок, в якому зупиняються люди, є екземпляром .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.