Статические и примитивные элементы не входят в состав ООП. Я прочитал, что статические и примитивы не допускаются в определениях класса scala. Если это так, то почему статические и примитивы были разрешены в java и C# и нескольких других языках?Уточнение статических и примитивных элементов
ответ
Они не являются частью «чистого» объектно-ориентированного, но иногда «чистого» мешают «выполнять работу».
Использование примитивов может сделать математические операции (в частности) намного быстрее, а статика позволяет использовать множество полезных шаблонов проектирования.
По правде говоря, они также могут быть описаны как оптимизация на несоответствующем уровне абстракции. Примитивные обертки также могли использоваться по всему языку и распаковываться в примитивы в момент компиляции JIT, когда это необходимо. –
C#, C++ и Java - языки программирования общего назначения. Вы можете найти, например, элементы утиного ввода в C# 4.0, элементы функционального программирования и многие другие полезные конструкции.
Не каждая программа, а не каждая часть программы должна быть ориентирована на объекты. Используйте ООП, когда это необходимо, и когда он служит цели, на C#, C++ и Java вы можете использовать другие или более простые конструкции каждый раз, когда вы чувствуете, что ООП - это козел-мошенник с пушкой '.
Его техническое решение. Как и большинство технических решений, это требует тщательной балансировки множества различных сил на дизайн. В этом случае его дизайн языка. Различные языки предназначены для решения различных проблем и имеют разные цели. Поэтому неудивительно, что разные языки приходят к разным выводам.
В этом случае есть издержки и выгоды от наличия примитивов.
Примитивы могут быть быстрее. Примитивы могут облегчить выполнение некоторых вещей низкого уровня (например, запись отдельных битов в регистр на микрокондоллере во встроенной системе.)
С другой стороны, примитивы могут сделать ваш язык программирования более сложным, поскольку ваши примитивные типы имеют разные синтаксисы и т. д., чтобы работать с ними. Некоторые новые языки пытаются использовать там торт и есть его, используя примитивные типы под обложками, но делая их похожими на объекты в терминах синтаксиса.
- 1. Переопределение статических элементов и статических статических массивов
- 2. Объявление и инициализация статических элементов
- 3. Запирание статических элементов класса
- 4. Инициализация объектов статических элементов
- 5. Сбор мусора статических элементов
- 6. Инициализация статических элементов C++
- 7. Уточнение в стеке и куче
- 8. Смешивание статических и динамических элементов в заголовке
- 9. Вставка из выбранных и статических элементов
- 10. Смешивание динамических и статических элементов меню XAML
- 11. Преимущества характеристик типа против статических элементов?
- 12. Как найти и избежать неинициализированных примитивных элементов в C++?
- 13. Наследование статических элементов в MooTools
- 14. Уточнение необходимо в статических методах в коллекциях в java?
- 15. Инициализация статических элементов шаблонного класса
- 16. Предотвращение HTML Уточнение добавления элементов li
- 17. поведение статических элементов в java
- 18. Инициализация статических элементов в PHP
- 19. Использование статических шаблонов элементов шаблона
- 20. Передача объектов против статических элементов
- 21. Зачем использовать public и private для статических элементов и метода?
- 22. Jenkins и GIT Уточнение
- 23. EF6 и POCO Уточнение
- 24. FluentNHibernate и коллекция примитивных типов
- 25. MyBatis - списки примитивных типов
- 26. Абсолютное положение Div относительно статических элементов
- 27. Как C# обрабатывает память для статических элементов
- 28. Доступ к связанным полям из статических элементов
- 29. C# console (уточнение статического класса)
- 30. членов класса против статических элементов в Vala
Простой, по дизайну. –
@suresh - это рациональный дизайн, чтобы добавить что-то, что не является частью ООП? – BDR
Да, чтобы улучшить производительность языка –