Путь разработчика    

Почему Java не поддерживает перегрузку оператора?


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

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

Источник: http://net-informations.com/Java/cJava/operator.htm



Источник:

Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

Сделать общий класс очереди приоритетов в C#

В этом примере показано, как создать общий класс очереди приоритетов. Общий класс похож на обычный класс, за исключением того, что он может принимать один...

13 11 2019 9:50:41

Сделайте методы расширения subarray в C#

Метод Array класса Array класса может копировать подмассив из одного массива в другой, но для этого требуется выяснить, сколько элементов вы хотите скопиро...

12 11 2019 14:27:27

Обработка XML-файлов Python

Что такое XML? XML означает расширяемый язык разметки . Стандарт XML - это гибкий способ создания информационных форматов и электронного обмена структуриро...

11 11 2019 11:43:20

Метод Contains() в Java

Java String contains()- метод чтобы проверить, содержит ли String указанную последовательность символов. Этот метод возвращает логический тип данных, котор...

10 11 2019 20:34:37

Операторы сравнения! = Не равны в Python

Вы можете использовать! = И не для не равной операции в Python. Пример Пример Источник: http://net-informations.com/python/iq/not.htm...

09 11 2019 7:18:27

Класс BufferedReader в Java

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

08 11 2019 8:50:50

Отображать образцы форматов для разных локалей в C#

При запуске программы выполняется следующий код. Этот код сначала создает значения float, decimal и DateTime. Затем он перебирает объекты CultureInfo, возв...

07 11 2019 16:21:32

Switch в Java Синтаксис и примеры

Оператор switch используется для выполнения различных действий на основе разных условий. Оператор switch Java работает с байтовыми, короткими, char и int п...

06 11 2019 21:54:32

Перемещение формы без заголовка в C#

Когда пользователь нажимает мышь на зеленую метку lblMoveForm Label в верхнем правом углу формы, выполняется следующий обработчик событий. Код устанавливае...

05 11 2019 2:53:27

Как сделать стрельбу в Unity 2D с пулом объектов

В сегодняшнем уроке мы разберем как сделать стрельбу в Unity 2D с использованием пула объектов (Object pool) для реализации этого менее затратно....

04 11 2019 14:58:52

Нарисуйте прокладку Аполлония в C#

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

03 11 2019 2:37:43

Нарисуйте пунктирные линии с помощью разных стилей штриховки в C#

Контрольная панель определяет, как программа рисует концы точек и тире, которые составляют пунктирную линию. Если линия шириной 1 пиксель, вы, вероятно, не...

02 11 2019 22:20:51

Почему я получаю NoClassDefFoundError в Java?

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

01 11 2019 22:49:26

Как выделить строку DataGridView, находящуюся под мышью в C#

Недавно кто-то спросил меня, как изменить стиль строки под мышью в элементе управления DataGridView. Этот пример делает это. Когда программа запускается, с...

31 10 2019 17:10:54

Делегаты и интерфейсы в C#

Делегаты: Делегаты являются ссылочными типами, поэтому они выделяют весь объект только для ссылки на метод. Делегаты быстрее всего звонят, когда вы знаете...

30 10 2019 0:47:49

Добавить варианты ComboBox во время выполнения в C#

В этом примере вы можете добавить ComboBox варианты, когда пользователь выбирает их во время выполнения. Чтобы отслеживать выбор для будущего использования...

29 10 2019 2:19:51


Parse error: syntax error, unexpected ',' in /home/users/9/9161484547/domains/flash-mx.ru/lessons/926.php on line 69