понятие класса и объекта - PullRequest
0 голосов
/ 14 ноября 2009

которые приходят первыми в классе или объекте в объектно-ориентированных языках?

Ответы [ 9 ]

2 голосов
/ 14 ноября 2009

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

Не во всех языках ООП есть классы - и они вам не нужны.

Например, в Ruby вы можете определять новые методы для объекта и просто клонировать сами объекты - или вы можете выполнять традиционный дизайн и определять новые классы.

В Self вы вообще не определяете классы. Вместо этого вы добавляете методы к «прототипу объекта-примера» и клонируете его копии, когда вам нужны новые «экземпляры».

Многим нравится начинать проектировать ОО-системы с помощью диаграмм классов, но, к сожалению, это скорее симптом SQL-мышления, чем ОО-мышления. Прежде всего - объекты делают вещи.

2 голосов
/ 14 ноября 2009

Объект является экземпляром класса. Класс на первом месте.

Класс представляет собой чертеж или шаблон объекта. Это точный макет, который описывает, как построить объект. В классическом ОО-классе сначала необходим класс для построения объекта.

Это философский вопрос, является ли в реальной жизни подход сверху вниз (сначала класс, затем объект) или подход снизу вверх (сначала объект, затем абстракция класса).

Наконец, очевидно, что кто-то может придумать язык, который использует концепции ОО без классов, но ИМО не совсем об этом вопросе.

0 голосов
/ 15 ноября 2009

Краткий ответ: объекты на первом месте.

Длинный ответ хорошо - длинный:)

  1. Эти языки называются объектно-ориентированными по причине.
  2. У каждого сотрудника ОО языка есть мантра: все это объект. Это включает в себя занятия.
  3. Существуют даже языки, которые, хотя и не OO, поддерживают OO-программирование (например, Erlang)
  4. Мы можем думать о классах по-разному:
    • В большинстве языков, основанных на базах классов, основная причина использования классов - поддержка именительной типизации. Это возможность различать объекты по их «типу» (например, Fruit и Star).
    • Классы обычно играют роль именования. Я имею в виду, что некоторые ОО-языки (например, Java) не имеют явного понятия среды, они воспроизводятся всеми классами, которые в настоящее время находятся в пути к классам.
    • Класс также может использоваться в качестве шаблона для создания новых объектов, и, следовательно,
    • Класс, как правило, является хаком оптимизации - не дублировать информацию, общую для всех экземпляров класса (например, методы)

Я уверен, что их гораздо больше, но это только для начала :) 1025 *

0 голосов
/ 14 ноября 2009

Класс подобен общим ингредиентам и процедуре приготовления супа, а предмет - это сам суп.

Ингредиенты могут быть объектами сами по себе, поэтому определение класса для ингредиента будет, например, следующим: название ингредиента, цвет, размер и что вы можете делать с ингредиентом.

Пример программирования:

class You {
   string name;
   string height;
   string complexion;

   void run() {

   }

   void swim() {

   }

   ...
}

Надеюсь, это поможет.

0 голосов
/ 14 ноября 2009

Но все же в реальной жизни у нас есть такие вещи, как частицы и атомы. Мы описали их детали миллионы лет спустя - они прекрасно существовали без какого-либо «класса» или определения, как их сделать.

Класс - это чертеж объекта, это сборка базовых форм, таких как целые числа, строки и т. Д. Таким образом, в теории объект 'typeof (объект)' является самой базовой формой и не требует никакого класса. *

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

Объект как «идея» определенно появился первым, мы создали классы для описания свойств каждого объекта.

0 голосов
/ 14 ноября 2009

И в Java, и в C ++ класс стоит первым. Не может быть объекта без класса.

Класс похож на план. Объект машина. С одним чертежом можно построить много автомобилей. В одном классе можно создать множество объектов.

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

0 голосов
/ 14 ноября 2009

Согласно википедии, первый язык с явной поддержкой функций для ООП был Simula , который включал концепцию класса. В последнее время появились ООП-языки, которые используют прототипы , а не такие классы, как javascript .

0 голосов
/ 14 ноября 2009

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

0 голосов
/ 14 ноября 2009

Думайте о классе как обрезчике печенья, а об объекте - как об печенье. Классы являются спецификациями; объекты являются реализациями этих спецификаций в памяти.

Классы на первом месте. Не может быть объекта без класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...