POO em ação: Construindo os pilares do paradigma - Parte 1
Estou fazendo um novo post no meu blog, passando tópicos fundamentais sobre POO em Java de forma bem didática, usando exemplos e animações. Este é o primeiro post da série de (planejado) 8 partes, qualquer sugestão para futuros posts é muito bem vinda. Ele acabou ficando um pouco grande, então não dá para colocar ele inteiro aqui, se ficou interessado, acesse o post completo aqui:
POO em ação: Construindo os pilares do paradigma - Parte 1
Aqui vai uma pequena espiada em alguns poucos tópicos do post.
Tópicos abordados
Nesta série, vamos usar o Java com JDK 21 para criar os exemplos práticos, escolhi o Java por ser amplamente usado em várias áreas além de muitas faculdades ainda o usam para a disciplina de POO.
Quero deixar claro que, se você está interessado em POO, então provavelmente já sabe os conceitos básicos sobre linguagem de programação, como declarações, funções, controle de fluxo e outros, se não, então provavelmente vai se sentir mais perdido que o resto, sugiro aprender, na teoria e na prática, estes conceitos antes de continuar, além disso, não vou focar em ensinar a sintaxe e peculiaridades do Java, o intuito aqui é ensinar POO.
- ➡️ Parte 1 - Construindo os pilares do paradigma (Abstração e Encapsulamento).
- Parte 2 - Construindo os pilares do paradigma (Polimorfismo e Herança).
- Parte 3 - Relações entre objetos.
- Parte 4 - Fixando os conceitos da POO com mais prática.
- Parte 5 - Os princípios S.O.L.I.D
- Parte 6 - Aplicando Padrões de projeto (Design Pattern).
- Parte 7 - OO de forma inteligente com mais prática.
- Parte 8 - OO para a vida: Os conceitos de uma perspectiva diferente.
Objetos ≠ Classe
É fundamental deixar isso claro, uma classe é um molde para um objeto, um objeto é o que chamamos de instancia de uma classe, a partir de uma classe criamos um novo objeto, geralmente fazemos isso com a palavra-chave new, mas isso depende da linguagem, isso irá gerar um objeto concreto que podemos guardar em uma variável por exemplo e usar seus atributos e métodos que definimos na classe.
Getter e Setter
Estes são métodos que criamos para manter o controle de acesso dos atributos das nossas classes, métodos Get são usados para recuperar valor de um atributo, enquanto o Set é usado para atribuir valor ao atributo. A criação deles não é obrigatória para todo atributo, você os cria de acordo com a necessidade, inclusive, você pode criar apenas um Get, sem um Set, para um atributo, para assim garantir a imutabilidade.
Abstração
Esta diz respeito ao que você modela para dentro do seu software, pegar algo do mundo real e colocar no seu programa, no nosso exemplo abstraímos um livro, criando a classe com seus atributos (propriedades) e ações (métodos). Você pode ter notado que nem toda informação que tem em um livro tem na nossa classe, isso simplesmente porque não precisamos delas, você pode ter se lembrado de ISBN, gênero, idioma, etc. Mas queria deixar o exemplo simples, então coloquei apenas o que achei necessário.
Encapsulamento
Não pense que encapsulando os membros do nosso programa vamos fazer dele mais seguro, encapsulamento é sobre acesso e controle, ele dá ao programador uma forma de moldar a forma de usar uma classe que criamos por meio de permissões. Pode não parecer grande coisa, mas isso é bastante usado na criação de pacotes ou quando estamos trabalhando em equipe, onde devemos expor para eles apenas o que queremos que eles acessem, dessa forma, podemos dificultar o uso indevido da classe.