2012-06-13 2 views
0

Не звучать как коан, а просто интересно, существуют ли определенные правила о классах и объектах. Раньше я рассматривал классы как чертежи, а объекты - как создание из них. Но если комбинация чертежей создает еще один проект, станет ли этот последний проект также объектом?OOP - Если класс создает экземпляр класса, экземпляр также становится объектом?

+0

Ваш вопрос очень расплывчатый. Что это за язык? Вы говорите о том, что «комбинация чертежей создает еще один проект», что означало бы класс, создающий новый класс, а не экземпляр класса, который не является универсальным на всех языках. – lanzz

+0

Может быть, я не понимаю вопроса ... Если есть экземпляр, то этот экземпляр является объектом. Неважно, что его создало. Все, что было создано в куче, является экземпляром и является объектом. – David

+0

Не зависит от языка. Просто ООП вообще. –

ответ

1

Ваш вопрос кажется немного философским ... :) «объект» и «экземпляр» довольно синонимичны в ООП.

Если я правильно понял ваш вопрос, ваше сомнение в том, что: «Объект по-прежнему является объектом, если он создан другим классом, который не совпадает с его типом?»

Ответ «да», экземпляр является объектом, созданным после «модели» определяется его классом, но по многим причинам вы могли бы создать экземпляр класса, косвенным образом, например, статический метод (фабричный метод фабричного класса, например), а не напрямую с использованием инструкции new.

Если вы хотите увидеть некоторые приходят, простой пример в Java может быть:

public class MyClass { 
    public MyClass(){} 
} 

public class MyClassFactory{ 

    public getInstance(){ 
     return new MyClass(); 
    } 
} 

В этом случае экземпляр не возвращается непосредственно MyClass, но от заводского класса. однако это тоже объект ...

0

Как раз в каждой среде OO, которую я знаю, экземпляр такой же как объект.

Не имеет значения, создан ли объект/экземпляр клиентом (например, с new) или классом (например, с одиночками или фабриками).

Если вы говорите о чертежах в контексте классов, то создание чертежей из чертежей является наследованием, а не инстанцированием.

+0

, так что если комбинация классов создает новый класс, это будет наследование, а не объект? –

+0

@ Demetriius, да, это основная идея. – paxdiablo

Смежные вопросы