2013-12-23 3 views
-4

Статические и примитивные элементы не входят в состав ООП. Я прочитал, что статические и примитивы не допускаются в определениях класса scala. Если это так, то почему статические и примитивы были разрешены в java и C# и нескольких других языках?Уточнение статических и примитивных элементов

+3

Простой, по дизайну. –

+0

@suresh - это рациональный дизайн, чтобы добавить что-то, что не является частью ООП? – BDR

+1

Да, чтобы улучшить производительность языка –

ответ

3

Они не являются частью «чистого» объектно-ориентированного, но иногда «чистого» мешают «выполнять работу».

Использование примитивов может сделать математические операции (в частности) намного быстрее, а статика позволяет использовать множество полезных шаблонов проектирования.

+2

По правде говоря, они также могут быть описаны как оптимизация на несоответствующем уровне абстракции. Примитивные обертки также могли использоваться по всему языку и распаковываться в примитивы в момент компиляции JIT, когда это необходимо. –

1

C#, C++ и Java - языки программирования общего назначения. Вы можете найти, например, элементы утиного ввода в C# 4.0, элементы функционального программирования и многие другие полезные конструкции.

Не каждая программа, а не каждая часть программы должна быть ориентирована на объекты. Используйте ООП, когда это необходимо, и когда он служит цели, на C#, C++ и Java вы можете использовать другие или более простые конструкции каждый раз, когда вы чувствуете, что ООП - это козел-мошенник с пушкой '.

1

Его техническое решение. Как и большинство технических решений, это требует тщательной балансировки множества различных сил на дизайн. В этом случае его дизайн языка. Различные языки предназначены для решения различных проблем и имеют разные цели. Поэтому неудивительно, что разные языки приходят к разным выводам.

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

Примитивы могут быть быстрее. Примитивы могут облегчить выполнение некоторых вещей низкого уровня (например, запись отдельных битов в регистр на микрокондоллере во встроенной системе.)

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

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