Programação Orientada a Objetos vs Programação Procedural
A Programação Orientada a Objetos (OOP) e a Programação Procedural são dois paradigmas de programação. Um paradigma de programação é um estilo fundamental de programação de computador, e eles diferem na maneira como os diferentes elementos do programa são representados e como as etapas para a solução de problemas são definidas. Como o nome sugere, OOP foca na representação de problemas usando objetos do mundo real e seu comportamento, enquanto a Programação Procedural trata de representar 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 os principais aspectos de OOP (chamadas linguagens OOP), procedurais (chamadas de linguagens procedurais) e ambas. Mas uma coisa importante a se notar é que OOP e Procedural são duas maneiras de representar problemas a serem resolvidos, e não importa qual linguagem é usada. Em outras palavras,As linguagens OOP podem ser usadas para Programação Procedural, enquanto as linguagens procedurais podem às vezes ser usadas para OOP, com algum esforço.
A Programação Procedural é uma forma de programar que identifica o conjunto de etapas para resolver um determinado problema e a ordem exata em que 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 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ê adiciona todos os valores de crédito ocorridos durante o mês. Ao final do processo, você obterá o saldo de encerramento do mês da conta. Um dos principais conceitos da Programação Procedural é 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.
Em 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 parece muito com 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 OOP importantes, 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 a Programação de Procedimentos.
A principal diferença entre OOP e Programação Procedural é que o foco da Programação Procedural é dividir a tarefa de programação em uma coleção de variáveis e sub-rotinas, enquanto o foco da OOP é quebrar 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 Procedural usa procedimentos para operar diretamente em estruturas de dados, OOP agrupará os dados e métodos juntos 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 Procedural são freqüentemente referidos como método, objeto, mensagem e atributo em OOP, respectivamente.