Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Юрий_Алексеевич Гость
|
Добавлено: Пн Фев 03 2003 19:05 Заголовок сообщения: Возможно ли "абсолютное" ООП? |
|
|
Можно ли создать язык, в котором реализован такой подход: "всякая сущность в языке должна быть объектом"? Предположим, мы декларируем (определяем) функцию (объект класса Function) f(float x). Потом декларируем (определяем) функцию f(int a, int b). Внимание, вопрос 1: Что есть 'f'? Варианты ответов: 1. Последняя декларированная функция - f(int,int). Ну, в общем, вы понимаете, облом-с... 2. Первая декларированная функция - f(float). Если подумать, разницы никакой. 3. Массив Function: { f(float), f(int,int) }. --> см. Вопрос 2. 4. Неопределённость и ошибка периода компиляции (ОПК). --> см. Вопрос 2. 5. Ваш вариант. Вопрос 2: По какими идентификаторами называть функции? 1. Tипа f. Рушится один из основных принципов ООП - перегрузка функций. Без перегрузки П не может быть ОО. Если Вы не понимаете, почему, значит, вернётесь, когда подрастёте. 2. Типа f(float) 3. Ваш вариант. По-моему, если есть объект x, то мы не должны знать его тип, пока не спросим его самого (что-нибудь вроде x.getType() ) Вопрос 3 вынесен в заголовок. |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пн Фев 03 2003 19:14 Заголовок сообщения: Считаю, что вопрос сродни такому: возможен ли абсолютный русский язык? Ответ, как и в случае ООП, очевиден. (-) |
|
|
- |
|
Вернуться к началу |
|
|
Юрий_Алексеевич Гость
|
Добавлено: Пн Фев 03 2003 19:25 Заголовок сообщения: А язык прграммирования? |
|
|
Может, Вы ещё скажете, что C# — один из "наиболее абсолютно ОО" ЯП? |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пн Фев 03 2003 19:44 Заголовок сообщения: Как раз наоборот (+) |
|
|
Не забывайте, что ООП -- это не способ программирования, а конценция, в центре которой утверждение, что всякая сущность обладает определенными свойствами-методами, которыми и нужно (можно) пользоваться. Но при таком подходе умалчивается, а потом и теряется связь этой "сущности" с окружением, в котором "сущность" используется. Но не забывайте, что свойства-методы любой сущности определены во вполне конкретной среде, другими словами "что русскому хорошо, то немцу смерть", то есть в одних условиях одни свойства-методы имеют смысл, в других другие.
Вывод. Надо разумно использовать ООП, абсолютизация его приводит к дурным результатам. Пример из русского языка: спросите какими свойствами обладает "кулек" на разных территориях России? В одних местах это бумажный конус, в других это полиэтиленовый пакет. Единственное общее свойство у них -- это то, что в обоих "кульках" носят продукты.
Спасибо за внимание. |
|
Вернуться к началу |
|
|
ugz Гость
|
Добавлено: Пн Фев 10 2003 11:01 Заголовок сообщения: Re: Возможно ли "абсолютное" ООП? |
|
|
> Рушится один из основных принципов ООП - > перегрузка функций. > Без перегрузки П не может быть ОО.
Кто вам сказал, что _перегрузка_функций_ - основной принцип ООП. Плюньте в лицо такому человеку и выгоните его из своего дома
Изучайте SmallTalk до просветления, тогда может быть вы поймете, что такое ООП и что такое ОО-язык.
И ещё вопрос напоследок. Кого вы просите "декларировать(объявить)" функцию? То бишь кому вы отправляете сообщение "задекларировать_такую-то_функцию_"? |
|
Вернуться к началу |
|
|
ugz Гость
|
Добавлено: Пн Фев 10 2003 12:19 Заголовок сообщения: Re: Как раз наоборот (+) |
|
|
Где в определении ООП вы увидели, что-либо про свойства/методы? Или вам попалось какое-либо анекдотическое, уровня "куст - это совокупность веток и листьев, растущих из одного места"? |
|
Вернуться к началу |
|
|
Владимир Гость
|
Добавлено: Чт Фев 13 2003 11:01 Заголовок сообщения: Re: Возможно ли "абсолютное" ООП? |
|
|
Такой язык уже давно есть - Smalltalk. Насчет самого-самого ОО языка смотри его потомка - Self.
--
http://www.smalltalk.ru |
|
Вернуться к началу |
|
|
|