Когда язык будет называться полностью объектно-ориентированным языком? [закрытый]


Я сослался на учебное приложение из Google playstore под названием AllTech, где говорится, что java не является полностью объектно-ориентированным языком, поскольку он использует примитивный тип.

Я хотел бы знать, почему это не полностью объектно-ориентированный язык, поскольку он использует примитивный тип. Каждый объектно-ориентированный язык будет иметь примитивный тип.

Итак, какой язык должен быть полностью объектно-ориентированным языком?

Спасибо за ваше драгоценное время для изучения этого.

1 4

1 ответ:

Инкапсуляция. Наследование. Полиморфизм. Абстракция.

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

В Java примитивы не являются объектами. Это было сознательное дизайнерское решение, направленное на улучшение эксплуатационных характеристик. Например, нет никакой абстракции вокруг int, и вы не можете наследовать от int , и int ничего не инкапсулирует (даже количество битов, которые он содержит), и int не может быть полиморфный (хотя компилятор" выручает " в какой-то степени с авто-боксом и продвижением).

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

Люди начинают изучать Java в гибридном смешанном режиме. Они учатся пользоваться объекты и примитивы вместе. Это имеет некоторые преимущества и некоторые риски. Риск состоит в том, что они могут программировать, не принимая объектно-ориентированную точку зрения. Преимущества заключаются в том, что они могут использовать более знакомую итеративную парадигму программирования, пока они изучают объектную ориентацию.

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