Углубляясь в программирование на Java, я решил создать серию руководств по Java, чтобы поделиться своими знаниями со всеми.…

Прежде чем перейти непосредственно к Java, я хотел бы остановиться здесь и сначала поговорить о ПАРАДИГМАХ языков программирования. Я думаю, это было бы хорошо как для тех, кто только начинает свой путь в мире программирования, так и для тех, кто уже знаком с ним.

На этом этапе я также хотел бы сказать вам, что в этих главах учебника по Java в будущем вы можете увидеть, как я сравниваю Java с программированием на C, даже несмотря на то, что принципиально они оба разные, т.е. Java — это объектно-ориентированный язык программирования (который я обсудим в ближайшее время..) где как C НЕТ!! Но я люблю язык C, на самом деле это был первый язык программирования, который я изучил, так что у меня вошло в привычку сравнивать другие языки программирования с C…

Не теряйте больше времени… давайте начнем!! А теперь… хм… Прежде чем я начну, я хотел бы задать вам вопрос… Что такое программирование?…. Один из ответов может быть таким: Программирование – это процесс преобразования алгоритма в нотацию, язык программирования, чтобы его можно было выполнить на компьютере. Тогда…что такое язык программирования? …Это набор инструкций, данных компьютеру (в соответствии с синтаксисом или нотацией языка) для получения желаемого вывода или результатов! .. это может быть одно из самых простых определений, которые я мог придумать. Вы также можете увидеть несколько новых терминов, таких как Алгоритм , его можно определить как вычислительные процедуры, которые принимают входные данные и производят выходные данные.. В основном это набор шагов, которые мы хотим предпринять. при написании программы для получения желаемого результата. Она одинакова для любого языка программирования и обычно используется для анализа шагов и проверки пространственной и временной сложности и т. д.

Термин ПАРАДИГМА описывает набор техник, методов, теорий и стандартов, которые вместе представляют образ мышления для РЕШЕНИЯ ПРОБЛЕМ. Это «образы мышления для решения проблем».
Языковые парадигмы делятся на два класса: (1) императивные парадигмы и (2) декларативные парадигмы. Парадигмы. Императивные парадигмы могут быть дополнительно классифицированы на (а) процедурную парадигму, (б) объектно-ориентированную парадигму, тогда как декларативные парадигмы можно разделить на функциональную парадигму и (г) логическую парадигму.

ИМПЕРАТИВНЫЕ ПАРАДИГМЫ
Императив означает «выражение команды или приказа», поэтому языки программирования в этой категории определяют шаг- пошаговое объяснение команды. В нем подробно описываются «КАК» получаются результаты, программа запускается из начального состояния, проходит через переходы и достигает конечного состояния.

(a) Процедурная парадигма:
Они ориентированы на операторы с переменными, содержащими значения. При этом выполнение программы моделируется как последовательность состояний переменных местоположений.
Исполняемый оператор включает в себя вычислительные, управляющие операторы и операторы ввода-вывода.< br /> Неисполняемые операторы включают выделение памяти, привязку символического имени к абсолютным ячейкам памяти и инициализацию памяти.
ПРИМЕР: C ,Pascal,Fortran,Algol,Cobol,Modula,Ada,Basic и т. д.

(b) Объектно-ориентированные парадигмы:
Всегда решайте проблемы, концентрируясь на объектах, их характеристиках и поведении. Вычисления в этой парадигме рассматриваются как симуляция. сущностей (объектов) реального мира. Например, автомобиль является объектом класса транспортных средств. Позже мы подробно поговорим о концепциях ООП (объектно-ориентированного программирования).
ПРИМЕР: Java, C++, Simula, Smalltalkи т. д.

ДЕКЛАРАТИВНЫЕ ПАРАДИГМЫ
Они декларируют, что делать, не указывая, как это должно быть сделаноe. Это программирование, ориентированное на ценность. Они описывают отношения между переменными с точки зрения функций и правил вывода. В основном используется для решения задач искусственного интеллекта и удовлетворения ограничений.

( c) Парадигмы функций:
В этом случае функция состоит из набора функций. Программа состоит из вызова функции с соответствующими аргументами, но любая функция может использовать и другие функции.
ПРИМЕР: Lisp, ML, Scheme, Hashkell

(d) Логические парадигмы:
только объясняет, что должно быть вычислено, а не как это вычислять. Программа представлена ​​набором отношений между объектами или свойствами объектов, известными как предикаты, которые считаются истинными, и набором логики/предложений (т. е. если A истинно, то B истинно). По сути, он объединяет операторы данных и управления.
ПРИМЕР:Prolog, Mercury

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП)

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

Проблемы
1. Весь акцент делается на действии, т. е. данным присваивается более низкий статус.
2. Основные компоненты включают функции и структуру данных. Но, к сожалению, функции и структура данных не очень хорошо определяют ситуации в реальном мире.

Решение: объектно-ориентированное программирование (ООП), где программист решает проблемы, концентрируясь на объектах, их характеристиках и поведении, как в реальном мире.
1. В ООП программа организуется вокруг ДАННЫХ, над которыми оперируют, а не над выполняемыми операциями.
2. ООП объединяет как данные, так и его функции, которые работают с данными, в единый блок, называемый Объектом.

КОНЦЕПЦИИ.
Основными компонентами ООП являются «Объекты и класс», «Абстракция данных и инкапсуляция». ", "Наследование и полиморфизм". Я буду подробно рассказывать с примерами о каждом отдельном учебном посте, но давайте вкратце посмотрим, что они на самом деле означают.

ОБЪЕКТ:
объект содержит данные и функцию, относящуюся к ним, скажем, например, объект «собака» содержит функции поведения, такие как лай, голод, игра. Каждый объект может взаимодействовать друг с другом, даже не зная деталей друг о друге. достаточно знать тип принятого сообщения и тип ответа, отправленного объектом.
Пример: объект клиента запрашивает или отправляет сообщение исполнительному объекту для получения сведений об учетной записи. Им не нужно знать друг друга, но они все же могут обмениваться информацией между собой (мы увидим это лучше в следующем уроке).

КЛАСС:
Программист определяет формат и поведение объекта, определяя класс. Класс служит планом или шаблоном. Это коллекция объектов схожих типов . (объекты могут быть одного типа, но данные внутри них могут различаться, так как каждый объект независим от другого)
Пример: каждый отдельный автомобиль, движущийся по дороге, является объектом классов автомобилей. . Скажем, объект car1 включает автомобили Benz, тогда как объект car2 включает автомобили Ford, хотя данные различаются, но они оба принадлежат к классу автомобилей.

АБСТРАКЦИЯ И ИНКАПСУЛЯЦИЯ ДАННЫХ:
объединение данных и функций в единое целое называется инкапсуляцией. Это одна из сильных сторон ООП. Данные могут быть упакованы с использованием спецификаторов доступа, которые ограничивают их доступность для внешних функций. Такая изоляция данных от прямого доступа программой известна как скрытие данных.
Абстракция – действие по представлению основных функций без включения фоновых деталей для различения объектов. /функции из других объектов/функций. То есть, используя их, не зная точных деталей того, как они работают (реализованы).
Пример: программист знает только о различных операциях, которые могут быть выполнены с типами данных, но то, как эти операции выполняются аппаратным или программным обеспечением, скрыто от программиста.
В ООП класс действует как абстрактный тип данных, он инкапсулирует все основные свойства объектов. которые должны быть созданы.

НАСЛЕДОВАНИЕ:
это процесс, посредством которого объект одного класса приобретает свойства объектов другого класса в иерархии. Производный класс (дочерний класс) наследует функции от базового класса (родительский класс), а также может иметь некоторые собственные дополнительные функции. родительский класс / базовый класс), такой как двухколесный транспорт, тормоза и т. д., и может иметь некоторые дополнительные функции, такие как шестерни, возможно, лучшие тормоза и т. д.

ПОЛИМОРФИЗМ:
это означает способность принимать более одной формы одного и того же свойства. Это можно просто рассматривать как Функция с одинаковым именем, но разными результатами. В основном это используется, когда у нас нет названий для функции или когда имя определенной функции кажется более подходящим или простым для запоминания и использования, но при этом нам нужны разные результаты.
Пример: мы можем создать две функции с одинаковым названием «площадь», но одна будет давать площадь квадрата, а другая — площадь прямоугольника.

ВАЖНЫЕ ОСОБЕННОСТИ ООП, КОТОРЫЕ НУЖНО ЗАПОМНИТЬ:
1. Больше внимания уделяется данным, чем процедурам.
2. Программы разбиты на модули, называемые объектами.
3.Методы структуры данных характеризуют объекты программы.
4.Данные не являются глобальными и определяются внутри объекта, поэтому случайная модификация данных исключена. (это означает, что у вас может быть переменная с именем «num» в начале как глобальная переменная, теперь вы создаете функцию и меняете значение num с 1 на 2, поэтому вы случайно изменили данные и, следовательно, позже можете получить неверный результат. Мы подробно обсудим это в концепции Scopes)
5. Возможность повторного использования объекта (подробно обсудим позже)
6. Восходящий подход в разработке программы. (выполнение операторов начинается снизу)

ПРЕИМУЩЕСТВА:
1. Простота в использовании, а также легкое разделение задач. (работа может быть разделена на основе объектов)
2. Уменьшение сложности. )
5. Экономия времени на разработку и повышение производительности (решения могут быть построены из стандартных рабочих модулей)
6. Разрешить создание безопасных программ. (использование скрытых данных помогает создать безопасную программу, к которой нельзя получить доступ из кода в других частях программы)
7. Разрешить разработку более простых интерфейсов. (методы передачи сообщений между объектами позволяют разрабатывать более простые описания интерфейсов с внешними системами.

Этого более чем достаточно для вводной части. Думаю, в следующем уроке мы сможем перейти к основам программирования на Java. Я надеюсь публиковать по одному уроку ежедневно, если не через день… Удачного кодирования!!