Programação Orientada a Objetos vs Programação Procedimental
Programação Orientada a Objetos (POO) e Programação Procedimental são dois paradigmas de programação. Um paradigma de programação é um estilo fundamental de programação de computadores, e eles diferem na forma como os diferentes elementos do programa são representados e como as etapas para a resolução de problemas são definidas. Como o nome sugere, a POO se concentra na representação de problemas usando objetos do mundo real e seu comportamento, enquanto a Programação Procedimental lida com a representação de soluções para problemas usando procedimentos, que são coleções de código que são executados em uma ordem específica. Existem linguagens de programação que suportam aspectos-chave da OOP (chamadas de linguagens OOP), Procedural (chamadas de linguagens procedurais) e ambas. Mas uma coisa importante a notar é que OOP e Procedural são duas formas de representar problemas a serem resolvidos, e não importa qual linguagem é usada. Em outras palavras, linguagens OOP podem ser usadas para Programação Procedimental enquanto linguagens Procedurais podem ser usadas algumas vezes para OOP, com algum esforço.
Programação Processual é uma maneira de programar identificando o conjunto de etapas para resolver um determinado problema e a ordem exata em que elas devem ser executadas para alcançar o resultado ou estado desejado. Por exemplo, se você deseja calcular o saldo final do mês para uma conta bancária, as etapas necessárias seriam as seguintes. Primeiro, você adquire o saldo inicial da conta e depois reduz todos os valores de débito ocorridos durante o mês. Depois disso, você soma todos os valores de crédito ocorridos durante o mês. Ao final do processo, você obterá o saldo final do mês da conta. Um dos principais conceitos da Programação Processual é a chamada de Procedimento. Um procedimento também conhecido como sub-rotina, método ou função contém uma lista ordenada de instruções a serem executadas. Um procedimento pode ser chamado a qualquer momento durante a execução por qualquer outro procedimento ou por ele mesmo. Exemplos de linguagens de programação procedurais são C e Pascal.
Na POO, o foco é pensar sobre o problema a ser resolvido em termos de elementos do mundo real e representar o problema em termos de objetos e seu comportamento. Objeto é uma estrutura de dados que se assemelha a algum objeto do mundo real. Os objetos contêm campos de dados e métodos que representam atributos e comportamento de objetos do mundo real. Existem vários conceitos importantes de POO, como abstração de dados, encapsulamento, polimorfismo, mensagens, modularidade e herança. Algumas linguagens OOP populares são Java e C. No entanto, eles também podem ser usados para realizar Programação Procedimental.
A principal diferença entre POO e Programação Procedimental é que o foco da Programação Procedimental é dividir a tarefa de programação em uma coleção de variáveis e sub-rotinas, enquanto o foco da POO é dividir a tarefa de programação em objetos, que encapsulam dados e métodos. A diferença mais notável pode ser que, enquanto a Programação Procedimental usa procedimentos para operar diretamente em estruturas de dados, a OOP agrupará os dados e os métodos para que um objeto opere em seus próprios dados. Quando se trata de nomenclatura, procedimento, módulo, chamada de procedimento e variável em Programação Procedimental são frequentemente referidos como método, objeto, mensagem e atributo em OOP, respectivamente.