[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Экземпляр класса
Страницы: 1, 2
twin
Немного побуяню опять по поводу ООП.

Сейчас приходится читать много документаций, и меня последнее время стало физически бесить словосочетание "экземпляр класса". Ну кто же это придумал, руки бы оторвать.

Это же совершенно не отражает суть объекта. Какой же это экземпляр... Идем в википедию и смотрим:
Цитата
Экземпляр (нем. Ехеmplar ← лат. ехеmplar — образец, пример) — отдельный предмет из множества таких же предметов; образец, особь.
И тут же противоречие:
Цитата
Экземпляр класса — в объектно-ориентированном программировании, описание конкретного объекта в памяти.


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

Как вы думаете?

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Oyeme
Цитата
Объект, это вовсе никакой не экземпляр. Это просто тип данных, ни больше, ни меньше. В нем нет методов, а значит он не может быть "отдельным предметом из множества таких же". Другими словами он вовсе не повторяет класс.


Экземпляр это "уникальная копия" класса которая предостовляет собой объект.
Виртуальная копия класса (не реальная копиа объекта)
Объект предостовляет собой два состояния "state and behavior."

Например у "людей" это возраст,имя и состояние "бегать,прыгать"

Обьект так же может быть назван "экземпляром" класса

Class >> Object >> Instance.

Я думаю что проблема в том что Вы пытаетесь перевести уж конкретно все на русский язык,но в ИТ совсем другие определения .

https://ru.wikipedia.org/wiki/%D0%9A%D0%BB%...BD%D0%B8%D0%B5)

Oyeme
https://en.oxforddictionaries.com/definition/instance

От куда пошло понятие и применение
Origin
Цитата
Middle English: via Old French from Latin instantia ‘presence, urgency’, from instare ‘be present, press upon’, from in- ‘upon’ + stare ‘to stand’. The original sense was ‘urgency, urgent entreaty’, surviving in at the instance of. In the late 16th century the word denoted a particular case cited to disprove a general assertion, derived from medieval Latin instantia ‘example to the contrary’ (translating Greek enstasis ‘objection’); hence the meaning ‘single occurrence’.
twin
Цитата (Oyeme @ 13.04.2017 - 09:03)
Экземпляр это "уникальная копия" класса
Вот и ты не понимаешь сути. Как вам это вбили в голову...

Нет у объекта никакого состояния. Если говорить, что объект, это экземпляр класса, то тогда нужно говорить - флешка, это экземпляр компьютера. Согласись, как то не то.

Давай возьмем объект. Сериализуем его. Запишем в файл. Унесем в другое приложение, где нет этого класса. И попробуем запустить. Где состояние? Где методы "бегать,прыгать"?

Никуда он не попрыгает без класса. Потому что это набор данных, которые заполняют класс, а вовсе никакой не экземпляр.

Цитата
От куда пошло понятие и применение
Вот это другое дело. Я, кстати, к instance претензий не предъявлял. smile.gif Это наши криворукие ООПэшники напереводили. instance как экземпляр, extends как наследование... Сами нихрена не понимают толк в процессах, а пишут учебники. smile.gif

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Oyeme
Цитата
Давай возьмем объект. Сериализуем его. Запишем в файл. Унесем в другое приложение, где нет этого класса. И попробуем запустить. Где состояние? Где методы "бегать,прыгать"?


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

Цитата
Если говорить, что объект, это экземпляр класса, то тогда нужно говорить - флешка, это экземпляр компьютера.


Есть "Объект" ,Объект имеет возраст и умеет прыгать,объекту присваивается имя "human" что является классом,которы уже з.При создание нового объекта происходит создания новое экземпляра класса

$humanOne = new Human();
$humanTwo= new Human();

Создаем два экземпляра класса Human.Два специфических объекта в данном примере.


Пример с флэшкой и компьютером вообще не в тему.Это совсем разные обьекты.
twin
Цитата (Oyeme @ 13.04.2017 - 09:31)
В чем суть примера? Некорректный пример ,таким образом объект уже не хранится в памяти.Нет никакого объекта больше
Здрасти, приехали. В памяти нет, а в файле есть.

Вот, специально для тебя, коль не веришь:
class Example
{
public $run;

public function run()
{
$this->run = 'Побежали!';
}
}


$obj = unserialize('O:7:"Example":1:{s:3:"run";s:17:"Побежали!";}');
echo $obj->run;

В памяти нифига нет, не создается объект тут. И метод run() не вызывается. Объект просто формируется из строки. И все работает. Убери класс, что получится?

Вот я возьму эту строку. Запишу в файл. Пойду на другой комп, прочитаю, рассериализую и попробую запустить. Если класса нет, запустится?

Цитата (Oyeme @ 13.04.2017 - 09:31)
Пример с флэшкой и компьютером вообще не в тему.Это совсем разные обьекты.
Очень в тему. Точно так же я создам документ в Ворде, запишу его на флэшку, пойду к товарищу, а у него нет ворда. :(

Вот вы говорите - объект, это экземпляр класса. Ну тогда нужно говорить: файл .doc, это экземпляр ворда, а флэшка это экземпляр компьютера.

Экземпляр, это подобный предмет. Идентичный. Если это человек, то у экземпляра должны быть руки, ноги и, как минимум, голова. А мне пытаются объяснить, что фотография, это экземпляр человека. Да, там есть и руки и ноги. Но шевелить она ими не может. :)

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
twin
А как надо? Представитель класса?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Я не знаю как надо. Но я точно знаю, что так не надо. Это не придирка к словам. Это исковеркана сама суть. А когда суть исковеркана, неверно истолковываются процессы. Соответственно можно допустить логическую ошибку.

Мне и объект то слово не совсем нравится. Но не буду занудой. Привыкли и ладно.

А вот экземпляр, это в корне неверно. Допустим смотри. Вот код:
class Example
{
public $run;
public static $dog = 'Собака';

public function run()
{
$this->run = self::$dog .' побежала';
}
}


$obj = new Example;
$obj->run();
echo $obj->run;


Тут адская смесь статики и объекта. Если не понимаешь сути, то трудно понять, почему это работает. Еще труднее объяснить. С какого перепуга объект видит self? Это же отдельный экземпляр! Он сам по себе, как Oyeme говорит. Самодостаточный.
Цитата (Oyeme @ 13.04.2017 - 09:31)
При создание нового объекта происходит создания новое экземпляра класса
Другими словами создали объект, значит скопировали класс, раз это экземпляр.

Ан нет. Объект просто управляет классом. И заполняет его данными на момент вычислений. А сам класс один. Как компютер. Флэшек (объектов) может быть много, а компьютер (класс) один. Потому объект и "видит" свойство класса.

Когда кому то объясняешь снуля, это просто. А если неверное толкование уже забито в башку, как гвоздь на 120, то очень сложно переубедить. :(

А как нужно... Ну как минимум не использовать это неверное определение. Наверное больше подошло бы слово "контроллер". Ну или что-то в этом роде.

Кстати, русское "инстанция" (от английского instance) никогда не подразумевало "экземпляр". По Ожегову
Цитата
Одна из ступеней в системе подчиненных друг другу органов
Ступень, часть. Причем в системе. Причем подчиненных. А никак не самодостаточный экземпляр.

Вот оно бы тоже подошло наверное.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
SlavaFr
Цитата (Arh @ 13.04.2017 - 10:42)
twin
А как надо? Представитель класса?

"Представитель класса" подходит гораздо лучше, так как объект действительно не является в моём понимание "экземпляром класса".
Я думаю правильно это "Инстанция класса Х" или "Объект типа Х".
Екземпляр класса мне тоже не совсем понятен, так как класс это по сути "Чертёж" по которому работает созданный "Объект". Экземпляр класса, для меня звучит тоже как "экземпляр чертежа", что не совподает с применением этого понятия к созданному Объекту.

Скорей всего понятие "Экземпляр класса" действительно является "жертвой неправильного перевода" smile.gif


_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
twin
Цитата (SlavaFr @ 13.04.2017 - 11:22)
Екземпляр класса мне тоже не совсем понятен, так как класс это по сути "Чертёж" по которому работает созданный "Объект".
Только наоборот. Объект, это чертеж, по которому класс "изготавливает" результат. Объект управляет классом, а не наоборот. smile.gif


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Диспетчер больше всего подходит помоему. smile.gif

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
sergeiss
Цитата (twin @ 13.04.2017 - 12:41)
Цитата
Экземпляр (нем. Ехеmplar ← лат. ехеmplar — образец, пример) — отдельный предмет из множества таких же предметов; образец, особь.
И тут же противоречие:
Цитата
Экземпляр класса — в объектно-ориентированном программировании, описание конкретного объекта в памяти.

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

Не вижу противоречия.

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

Ну например, ты решил испечь печенюшки. И у тебя есть форма для нарезания теста. Допустим, в виде рыбки smile.gif Форма - это класс. А те рыбки, что ты наделаешь этой формой из раскатанного теста - экземпляры класса. Ты в каждую рыбку потыкаешь вилкой, сделаешь в ней углубления, которые будут уникальные для каждой рыбки (или посыпешь сверху чем-нибудь) - ОК, ты их кастомизировал. При этом форма (класс) находится на столе, а рыбок (экземпляры класса) ты засунул в печку (поместил объекты/экземпляры в память). Где противоречие?


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Arh
Кажись вы путаете реальность с виртуальностью.
В реальности нельзя клонировать, а тут бац и ещё один экземпляр)
Походу так назвали не по принципу как оно работает, а по принципе как оно должно использоваться.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
sergeiss
Вот видишь. И у тебя гвоздь в голове. Класс, это не матрица. И ничего он не штампует. По крайней мере объект, это не подобие класса. Объект больше похож на массив, нежели на класс.

Класс, это программа. Она формируется в момент компиляции. Ну или интерпретации, если точнее. Организуются стеки, связи, указатели и прачая. Это похоже не на матрицу, а на станок. С кучей механизмов, шестеренок, электроники и прочего дерьма. Которое к производимой продукции не имеет отношения. А объект, это просто данные. Посмотри var_dump() любого объекта. Ты не увидишь там ни одного метода, тлько свойства. Или на сериализацию посмотри внимательно.
'O:7:"Example":1:{s:3:"run";s:17:"Побежали!";}'
Есть принадлежность к классу, и есть данные. Всё.

Если совсем провести аналогию, класс, это станок, изготавливающий пульты управления этим же станком. Вот пульт - это объект. У него может быть собственная память и кнопки, которыми этот станок управляется. Пультов может быть много, станок один.

Но пульт, это не экземпляр станка. Он не может работать самостоятельно. Он может только хранить результат и управлять станком. Без станка он совершенно бесполезен.

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

Так что это нонсенс, когда говорят "экземпляр класса". Это рождает вот такие неверные ассоциации, как у тебя. :)

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
sergeiss
Цитата (twin @ 13.04.2017 - 18:48)
sergeiss
Вот видишь. И у тебя гвоздь в голове.

Не, у меня в голове как раз всё нормально smile.gif И ассоциации у меня достаточно правильные. Прочитай еще раз, что я написал про подготовку теста для выпечки печенья и форму.

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

ПыСы. Хорошо, давай еще другой пример приведу. Вот у тебя есть печать. Которую ты можешь "окунуть" в чернила и сделать оттиск на документе. Что есть "класс", а что есть "экземпляр" в данном случае? "Класс" тут собственно печать, причем не вся, а только рабочая поверхность. Когда ты шмякнул печатью по документу, то получаешь оттиска печати. Который полностью повторяет то, что там было сделано на поверхности печати. При этом физически печать и оттиск вообще разные вещи! Печать - физический объект из резины/силикона, оттиск - чернила на поверхности бумаги. Но взаимосвязь между ними однозначная.

Также и в программировании...

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.