1. Vamos ABSTRAIR o DOMÍNIO Bootcamp e MODELAR seus ATRIBUTOS E MÉTODOS
2. Criaremos as CLASSES: Bootcamp, Cursos, Mentorias e Devs e vamos relaciona-las
3. As CLASSES Curso, Mentoria e Devs também serão MODELADOS, ou seja, criaremos seus ATRIBUTOS E MÉTODOS
4. Para que o código fique mais legível e de fácil manutenção, iremos utilizar de algumas das ferramentas que o PARADIGMA DE ORIENTAÇÃO A OBJETOS (POO) nos oferece: ABSTRAÇÃO, ENCAPSULAMENTO, HERANÇA E POLIMORFISMO
5. E para representar CLASSES que foram criadas e relacionadas, iremos transforma-las em OBJETOS
Programação Orientada a Objetos é um jeito de escrever programas de computador que se baseia na ideia de objetos. Pense em um objeto na vida real, como um brinquedo, por exemplo. Esse brinquedo tem algumas características que o tornam diferente de outros brinquedos, como sua cor, tamanho e forma. Ele também pode fazer algumas coisas, como emitir som ou se mover.
Na programação orientada a objetos, criamos objetos como esses para representar coisas do mundo real no computador. Cada objeto tem suas próprias características (chamadas de atributos) e ações que ele pode realizar (chamadas de métodos).
🔱 Principais pilares do POO: ABSTRAÇÃO, ENCAPSULAMENTO, HERANÇA E POLIMORFISMO. 🔱
Abstração é como se fosse uma simplificação de algo muito complicado. Imagine que você tem um carrinho de controle remoto com vários botões e funções. Para você brincar com ele, não precisa saber todos os detalhes de como ele funciona, mas apenas as funções mais importantes, como ligar, desligar, ir para frente e para trás. Isso é uma abstração, ou seja, você não precisa entender como o carrinho funciona por dentro, mas apenas o que ele pode fazer. Na programação orientada a objetos, a abstração é usada para criar classes que representam objetos do mundo real de uma forma mais simples e fácil de usar.
Encapsulamento em Java é como uma caixa que guarda um tesouro. O tesouro dentro da caixa é importante e precioso, mas só pode ser acessado pelas pessoas que têm a chave da caixa. Do mesmo modo, em Java, podemos colocar nossos dados importantes dentro de uma "caixa" chamada classe e protegê-los para que só possam ser acessados por meio de métodos específicos (as chaves). Isso nos ajuda a manter nossos dados seguros e organizados e evita que outras partes do programa os acessem de forma inadequada ou inesperada.
Imagine que você está construindo uma cidade de brinquedo com vários prédios, como escolas, hospitais e casas. Agora, você quer adicionar um novo prédio à sua cidade, mas ele é muito parecido com um dos prédios que você já construiu. Em vez de construir um novo prédio do zero, você pode usar o prédio existente como base e apenas fazer algumas alterações nele para criar o novo prédio. Isso é basicamente o que a herança faz em Java. Em vez de escrever um novo código do zero, podemos criar uma nova classe que é baseada em uma classe já existente, chamada classe pai. A nova classe é chamada classe filha e ela herda todas as características da classe pai. Podemos então adicionar ou substituir algumas características específicas na classe filha, para atender às nossas necessidades.
Polimorfismo é como se fosse uma brincadeira de trocar de roupa. Sabe quando você tem uma fantasia de princesa e pode trocar a saia, a blusa e a coroa? Então, imagine que você tem uma caixa de fantasias e pode trocar as peças para criar novas combinações. Na programação, isso é parecido com as classes, que são como as fantasias. Cada classe tem seus próprios métodos e propriedades, como a saia e a blusa da fantasia de princesa. Mas o legal do polimorfismo é que você pode trocar esses métodos e propriedades de uma classe para outra, assim como troca as peças da fantasia.