Объектно-ориентированное программирование против процедурного программирования
Объектно-ориентированное программирование (ООП) и процедурное программирование - это две парадигмы программирования. Парадигма программирования - это фундаментальный стиль компьютерного программирования, и они различаются по способу представления различных элементов программы и по тому, как определяются шаги для решения проблем. Как следует из названия, ООП фокусируется на представлении проблем с использованием объектов реального мира и их поведения, в то время как процедурное программирование имеет дело с представлением решений проблем с использованием процедур, которые представляют собой наборы кода, выполняемые в определенном порядке. Существуют языки программирования, которые поддерживают ключевые аспекты ООП (называемые языками ООП), процедурные (называемые процедурными языками) и оба. Но важно отметить, что ООП и процедурный язык - это два способа представления решаемых задач, и не имеет значения, какой язык используется. Другими словами, языки ООП можно использовать для процедурного программирования, в то время как процедурные языки иногда можно использовать для ООП, приложив некоторые усилия.
Процедурное программирование - это способ программирования, определяющий набор шагов для решения определенной проблемы и точный порядок их выполнения для достижения желаемого результата или состояния. Например, если вы хотите рассчитать остаток на конец месяца для банковского счета, необходимо выполнить следующие действия. Сначала вы получаете начальный баланс счета, а затем уменьшаете все дебетовые суммы, произошедшие в течение месяца. После этого вы добавляете все суммы кредита, произошедшие в течение месяца. В конце процесса вы получите итоговый баланс счета на конец месяца. Одной из основных концепций процедурного программирования является вызов процедуры. Процедура, также известная как подпрограмма, метод или функция, содержит упорядоченный список инструкций, которые необходимо выполнить. Процедура может быть вызвана в любой момент выполнения любой другой процедурой или сама по себе. Примерами процедурных языков программирования являются C и Pascal.
В ООП основное внимание уделяется размышлению о решаемой проблеме с точки зрения элементов реального мира и представлению проблемы с точки зрения объектов и их поведения. Объект - это структура данных, очень похожая на какой-либо объект реального мира. Объекты содержат поля данных и методы, которые представляют атрибуты и поведение объектов реального мира. Существует несколько важных концепций ООП, таких как абстракция данных, инкапсуляция, полиморфизм, обмен сообщениями, модульность и наследование. Некоторые популярные языки ООП - это Java и C. Однако их можно использовать и для выполнения процедурного программирования.
Ключевое различие между ООП и процедурным программированием заключается в том, что в процедурном программировании основное внимание уделяется разбиению задачи программирования на набор переменных и подпрограмм, в то время как в ООП основное внимание уделяется разбиению задачи программирования на объекты, которые инкапсулируют данные и методы. Наиболее заметным отличием может быть то, что в то время как процедурное программирование использует процедуры для непосредственной работы со структурами данных, ООП будет связывать данные и методы вместе, так что объект будет работать со своими собственными данными. Когда дело доходит до номенклатуры, процедура, модуль, вызов процедуры и переменная в процедурном программировании часто упоминаются как метод, объект, сообщение и атрибут в ООП соответственно.