Programação Orientada a Objetos vs Programação Procedural
Programação Orientada a Objetos (OOP) e Programação Procedural são dois paradigmas de programação. Um paradigma de programação é um estilo fundamental de programação de computadores, e eles diferem na maneira como diferentes elementos do programa são representados e na definição de etapas para a solução de problemas. Como o nome sugere, o OOP se concentra em representar problemas usando objetos do mundo real e seu comportamento, enquanto que a Programação Procedural lida com a representação de soluções para problemas usando procedimentos, que são coleções de códigos executados em uma ordem específica. Existem linguagens de programação que suportam aspectos-chave do OOP (chamadas linguagens OOP), Procedural (chamadas linguagens processuais) e ambas. Porém, uma coisa importante a ser observada é que OOP e Procedural são duas maneiras de representar problemas a serem resolvidos, e não importa qual idioma seja usado. Em outras palavras, as linguagens OOP podem ser usadas para programação procedural, enquanto as linguagens procedurais às vezes podem ser usadas para OOP, com algum esforço.
A programação procedural é 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 atingir 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 são as seguintes. Primeiro, você adquire o saldo inicial da conta e reduz todos os valores de débito ocorridos durante o mês. Depois disso, você adiciona todos os valores de crédito ocorridos durante o mês. No final do processo, você receberá o saldo final da conta no final do mês. 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 si só. Exemplos de linguagens de programação processuais são C e Pascal.
Na OOP, 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 muito a algum objeto do mundo real. Os objetos contêm campos e métodos de dados que representam atributos e comportamento de objetos do mundo real. Existem vários conceitos importantes de POO, como abstração de dados, encapsulamento, polimorfismo, sistema de mensagens, modularidade e herança. Algumas linguagens populares de POO são Java e C #. No entanto, eles podem ser usados para executar a programação processual também.
A principal diferença entre OOP e programação procedural é que o foco da programação processual é dividir a tarefa de programação em uma coleção de variáveis e sub-rotinas, enquanto o foco da OOP é 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, o OOP agrupa os dados e métodos para que um objeto opere em seus próprios dados. Quando se trata da nomenclatura, procedimento, módulo, chamada de procedimento e variável na Programação Procedimental são frequentemente referidos como método, objeto, mensagem e atributo no OOP, respectivamente.