5 |
6 | O objetivo principal é colocar em prática umas das principais ferramentas da OO: ABSTRAÇÃO, ENCAPSULAMENTO, HERANÇA, COMPOSIÇÃO E POLIMORFISMO através de um projeto Java.
7 |
8 |
9 |
🛑 Pré-Requisitos
10 |
11 |
12 | ✅ Conhecer a sintaxe da Java
13 | ✅ Java JDK 8+
14 | ✅ IDE para desenvolvimento Java (usarei IntelliJ)
15 |
16 |
17 |
🎯 Desafio
18 |
19 |
Modelar as entidades de uma aplicação de Gerenciamento de Colaboradores de uma loja.
20 | Dentre as outras funcionalidades (as quais você não precisará implementar), esse sistema terá a funcionalidade de calcular a bonificação dos colaboradores dessa loja seguindo as seguintes regras:
21 |
22 |
23 |
Vendedor é um Funcionário CLT e tem o benefício de bonificação.
24 |
Operador de Caixa é um funcionário CLT, mas não tem o benefício da bonificação.
25 |
Gerente é um Funcionário PJ e tem o benefício da bonificação.
26 |
27 |
28 |
Colaboradores
29 |
30 |
Vendedor:
nome, documento, salario, valor da bonificação e endereço.
31 |
Operador de Caixa:
nnome, documento, salario e endereço.
32 |
Gerente:
nome, documento, horas trabalhadas, valorHora, endereço e valor da bonificação.
33 |
34 |
35 |
36 | ----
37 |
38 |
📚 Paradigma de Programação Orientado a Objetos (POO)
39 |
40 |
41 |
42 |
43 |
44 |
45 | A visão de Orientação a Objetos (OO) é aquela de um mundo de objetos que interagem.
46 | Este paradigma é um modelo de análise, projeto e programação baseado na aproximação entre o mundo real e o mundo virtual, através da criação e interação entre classes, atributos, métodos, objetos, entre outros.
47 | A observação do mundo real compõe o princípio da ABSTRAÇÃO, sendo considerada a base da Orientação a Objetos.
48 | São 4 os pilares principais do POO: ENCAPSULAMENTO, HERANÇA, COMPOSIÇÃO E POLIMORFISMO.
49 |
50 |
51 |
🔺 ENCAPSULAMENTO:
52 |
Encapsular significa esconder a implementação dos objetos. O encapsulamento favorece principalmente dois aspectos de um sistema: a manutenção e a evolução.
53 |
54 |
🔺 HERANÇA:
55 |
Permite que objetos sejam referenciados como pai e filhos, em que os objetos filhos herdam todas as características do objeto pai, mas o objeto pai nada herda do filho. Isso reduz a duplicação de código-fonte.
56 |
57 |
🔺 COMPOSIÇÃO:
58 |
Busca representar as relações que os objetos devem ter, baseando-se nas relações que existem na vida real. Isso faz com que os objetos sejam reaproveitados, evitando duplicidade e mantendo a simplicidade.
59 |
60 |
🔺 POLIMORFISMO:
61 |
Com o polimorfismo, podemos transformar objetos diferentes em objetos que conseguem trocar mensagem por meio da generalização de suas características.
62 |
63 |
‼️ CONCEITOS FUNDAMENTAIS POO ‼️
64 |
65 |
🔻 DOMÍNIO:
66 | Domínio da aplicação, também conhecida como camada de negócio ou de objetos de negócio, é aquela onde estão localizadas as classes que fazem parte do domínio do problema, ou seja, classes correspondentes a objetos que fazem parte da descrição do problema.
67 |
68 |
🔻 CLASSE:
69 | Um elemento do código que tem a função de representar objetos do mundo real. Dentro dela é comum declararmos atributos e métodos, que representam, respectivamente, as características e comportamentos desse objeto.
70 |
71 |
🔻 ATRIBUTO:
72 | Atributos são, basicamente, a estrutura de dados que vai representar a classe. Os atributos também são conhecidos como VARIÁVEL DE CLASSE, e podem ser divididos em dois tipos básicos: atributos de instância e de classe.
73 |
74 |
🔻 VARIÁVEL:
75 | Uma “região de memória (do computador) previamente identificada cuja finalidade é armazenar os dados ou informações de um programa por um determinado espaço de tempo”.
76 |
77 |
🔻 MÉTODO:
78 | Os métodos representam os estados e ações dos objetos e classes.
79 |
80 |
🔻 OBJETO:
81 | Em POO, objeto é um "molde" de uma determinada classe, que passa a existir a partir de uma instância da classe. A classe define o comportamento do objeto, usando atributos (propriedades) e métodos (ações).
82 | Objeto em ciência da computação, é uma referência a um local da memória que possui um valor. Um objeto pode ser uma variável, função, ou estrutura de dados.
83 |
84 |
🔻 INSTÂNCIA:
85 | Uma instância de uma classe é um novo objeto criado dessa classe, com o operador new. Instanciar uma classe é criar um novo objeto do mesmo tipo dessa classe. Uma classe somente poderá ser utilizada após ser instanciada.
86 |
87 | ------------
88 |
93 | Este repositório foi criado para fins de estudo, então contribua com ele.
94 | Se te ajudei de alguma forma, ficarei feliz em saber. E caso você conheça alguém que se identidique com o conteúdo, não deixe de compatilhar.
95 |
96 | Se possível:
97 | ⭐️ Star o projeto
98 | 🐛 Encontrar e relatar issues
99 |