O que é um paradigma?
A palavra paradigma (do grego, "παράδειγμα" - parádeigma) significa "modelo exemplar" ou "exemplo que serve de referência".
Ao longo do tempo, a palavra paradigma foi adotada em várias línguas, mantendo seu significado essencial de um modelo, padrão ou exemplo que é seguido ou usado como referência em diferentes áreas do conhecimento.
Exemplos de Paradigmas:
Paradigmas de pensamento econômico: O paradigma de pensamento econômico é uma abordagem geral para entender e resolver problemas econômicos. Existem vários paradigmas diferentes de pensamento econômico, como o keynesianismo, o monetarismo e o liberalismo econômico. Cada um desses paradigmas possui suas próprias ideias e teorias sobre como as economias funcionam e como os problemas econômicos devem ser resolvidos.
Paradigmas de psicologia: Um paradigma em psicologia é uma abordagem geral para entender e estudar o comportamento humano e a mente. Existem vários paradigmas diferentes de psicologia, como o humanista, o cognitivo e o evolutivo. Cada um desses paradigmas possui suas próprias ideias e teorias sobre como a psicologia e o comportamento humano podem ser compreendidos.
Um paradigma de programação é uma abordagem geral para a escrita de códigos e resolução de problemas computacionais. É como um modelo ou um padrão de pensar em programação.
Exemplos de Paradigmas de Programação incluem a programação estruturada, a programação funcional e a programação orientada a objetos.
1. Programação Imperativa
Baseada em ações que mudam o estado (valores de variáveis) do programa
O código dá instruções explícitas ao computador sobre o que fazer e como fazer, sequencialmente
Ex.: Pascal, C, Fortran, BASIC
program HelloWorld;
begin
writeln('Hello!');
writeln('World!');
end.
2. Programação Funcional
Baseada na composição de funções matemáticas para resolver problemas
A lógica do código é representada como uma sequência de transformações de dados, em vez de uma série de comandos explícitos
Ex.: LISP, Haskell, ML
(defun hello-world ()
(format t "Hello, World!~%"))
(hello-world)
3. Programação Estruturada
Baseada em estruturas de módulos claramente definidos e separados, como funções, procedimentos e estruturas de controle de fluxo. O objetivo é tornar o código mais fácil de ser entendido, testado e mantido.
Em uma estrutura de módulos, é possível escrever códigos não lineares / sequenciais
Ex.: Pascal, C, Fortran, BASIC
#include <stdio.h>
void printHelloWorld() {
printf("Hello, World!\n");
}
int main() {
for (int i = 0; i < 3; i++) {
printHelloWorld();
}
return 0;
}
4. Programação Lógica
Baseada em lógica formal
O código define regras lógicas e fatos que a máquina usa para deduzir conclusões e encontrar soluções
Ex.: Prolog, Mercury, Datalog
mensagem("Hello, World!").
imprimir_mensagem :-
mensagem(Mensagem),
write(Mensagem).
% imprimir_mensagem.
5. Paradigma Orientado a Objetos
A ser estudado nesta disciplina...
É possível pensar em um paradigma de programação como um tipo de arquitetura para construir uma casa. Algumas pessoas preferem construir casas de estilo colonial, enquanto outras preferem estilo contemporâneo. Algumas pessoas fazem casas usando madeira, outras optam por tijolos de argila, enquanto outras usam blocos de concreto. Ambas as abordagens funcionam, mas cada uma tem suas próprias vantagens e desvantagens.
Da mesma forma, cada paradigma de programação tem suas próprias vantagens e desvantagens e é importante escolher o mais adequado para o problema que precisa ser resolvido.
Fonte: Autoral, feita com Midjourney.
A Programação Orientada a Objetos (POO) é um paradigma de programação que se baseia no conceito de objetos.
Tem bases conceituais nas Ciências Cognitivas, usando o código para abstrair o mundo real de forma mais intuitiva e organizada.
Neste paradigma, os programas são compostos por objetos que representam entidades do mundo real e suas relações, ou seja, como estes objetos são compostos e interagem entre si.
Cada objeto possui características e comportamentos, que são representados por atributos e métodos, respectivamente.
Alguns exemplos de linguagens de programação que seguem este paradigma incluem: Java, C#, C++ e Python.
Hexágono Cognitivo. Fonte: GARDNER, 1996, pag. 96. A nova ciência da mente: uma história da revolução cognitiva.
O que é abstração? A abstração é uma operação intelectual na qual um objeto de reflexão é isolado conceitualmente, analisando elementos que comumente estão relacionados a este objeto na realidade.
A abstração é um conceito fundamental na POO.
O processo de abstração envolve identificar as características e comportamentos comuns entre vários objetos pertencentes a categoria do objeto de reflexão.
A abstração de um objeto de reflexão gera uma representação desse objeto que pode ser usada e reutilizada muitas vezes.
Abstração é o processo que acontece na mente quando alguém pensa sobre um objeto ou coisa e separa suas características importantes daquelas que não são tão importantes. Isso ajuda a simplificar e entender melhor o objeto. Depois de fazer isso, é possível criar uma representação desse objeto que pode ser usada várias vezes. É como fazer um desenho de um objeto que está sendo observado, concentrando-se apenas nas partes importantes.
Fonte: Autoral, feita com Midjourney.
Em POO, o processo de abstração inclui algumas formas de abstração:
Classificação: descrever classes através de características e comportamentos comuns para classificar objetos em uma categoria;
Agregação/Composição: descrever classes a partir da agregação ou composição de classes existentes via comunicação entre classes;
Generalização/Especialização: descrever classes mais específicas a partir de classes mais genéricas.
Cada uma dessas formas de abstração será estudada nesta disciplina, em aulas específicas, a começar pela classificação que é estudada nesta aula.
Uma classe é uma abstração, ou seja, uma representação de um objeto de reflexão ou de uma categoria.
Em POO, uma classe é uma estrutura que funciona como um molde e define um conjunto de características e comportamentos que de um tipo de objeto.
⬅️ Observe a figura ao lado.
Que figura é essa?
Como é possível saber?
Uma classe é uma representação ampla o suficiente para um conjunto de objetos que compartilham características e comportamentos.
Uma Classe também pode ser chamada de Entidade de um sistema.
Objetos são a unidade básica da POO.
Um objeto é um membro de uma Classe, isto é, um objeto pertence à categoria que a Classe descreve, desta forma um objeto possui as características, comportamentos da sua Classe, bem como uma identidade nominal única.
Costuma-se dizer que um objeto é uma Instância de uma Classe.
Um atributo é uma característica ou propriedade de uma Classe/Objeto.
Um atributo possui um tipo, que é definido pela Classe à qual ele pertence.
Um atributo também possui um valor. Este valor:
Deve ser do tipo definido pela Classe;
Pode variar de acordo com a identidade do Objeto ao qual ele pertence; e
Pode ser pré-definido ou inicializado pela sua Classe.
Um método é um comportamento de uma classe/objeto, ou seja, uma ação ou função específica que pode ser executada por um Objeto de uma Classe.
Métodos também podem ser chamados de operação ou mensagens, pois é através de métodos que as classes se comunicam.
De forma resumida, podemos dizer que um método define o que um objeto pode fazer e como ele pode se comunicar com outros objetos.
Alguns possíveis atributos:
lado 1 (L1)
lado 2 (L2)
lado 3 (L3)
tipo
cor
base (b)
altura (h)
área
Alguns possíveis métodos:
calcular área
calcular perímetro
calcular semiperímetro
Alguns possíveis objetos (instâncias):
T1
T2
T3
Alguns possíveis atributos:
material
esporte
raio
Alguns possíveis métodos:
rolar
Alguns possíveis objetos (instâncias):
bola de futebol
bola de boliche
Alguns possíveis atributos:
gênero
idade
Alguns possíveis métodos:
andar
falar
Alguns possíveis objetos (instâncias):
Maria
João