Classes
classe funciona como um molde, tendo em vista a criação de vários objetos com as mesmas características.
class Cliente
{
nome;
cpf; atributos
nascimento;
}
class Conta
{
corretora;
tipo de investimento; atributos
saldo;
nivel;
}
Lembre sempre de analisar os objetos a serem criados e abstraia as estruturas.
Construindo / Criando objeto
Para usar uma classe precisamos inicialmente instância-la em uma variável.
const pessoa1 = new Nome()
const pessoa2 = new Nome()
pessoa1.nome = "Hailton";
pessoa1.cpf = 45048007209;
pessoa1.nasimento = 25-04-1996;
pessoa2.nome = "Fulo";
pessoa2.cpf = 99048007209;
pessoa2.nasimento = 25-04-1990;
const conta1 = new Conta()
conta1.corretora = "NocInvestimentos";
conta1.tipodeinvestimento = "MercadoAberto";
conta1.saldo = 999.99;
conta1.nivel = "tranquileba";
Resultado final de uma consulta realizada a pessoa1.nome
e pessoa1.cpf
Desestruct
Cria variáveis a partir de um objeto, util para evitar a referencia extensa, como acima.
objeto.atributo
let { nome, cpf, nascimento } = pessoa1;
Vale lembrar que é necessário que as variáveis tenha o mesmo nome dos atributos, uma vez que o motor do JS, ira buscar como referencia.
Match
Busca valores específicos em uma base de dados onde não se tem muita certeza.
const variavelExemplo = 'Este texto tem um valor a ser procurado 123.456.789-99';
definindo RegExp:
const resultado = new RegExp('[0-9]{3} . [0-9]{3} . [0-9]{3} - [0-9]{2}');
usando match:
console.log(variavelExemplo.match(resultado));
Definindo constructor
()
Organizando a sintaxe e protegendo de alterações fora da função.
class Cliente
{
nome;
_cpf;
...
constructor(nome, cpf)
{
this.nome = nome;
this._cpf = cpf;
...
}
}
Utilizando
const clienteH = new Cliente("Hailton, 45048007209");
Função em Classes
Criando um objeto completo contendo forma e funções
class Conta
{
corretora;
tipo de investimento;
saldo;
nivel;
sacar(valor)
{
if(this.saldo >= valor)
{this.saldo -= valor;}
}
Deposito(valor)
{
if(valor >=0)
{this.saldo += valor;}
}
}
Resultado final
Após um saque de R$9 e um deposito de R$9000:
conta1.sacar(9)
conta1.depositar(9000)
Class calculadora
Classe sem atributos e com 2 metodos soma
e subtração
class Matematica
{
soma(valor1, valor2)
{
return valor1 + valor2;
}
subtracao(valor1, valor2)
{
return valor1-valor2;
}
}
Retorno
O comando return serve para indicar a função a "devolver" a atributo.
Ainda o retorno pode servir para parar a execução de uma função caso a mesma esteja em desconformidade. Promovendo a diminuição de indentação.
var somador = 0
var atributo = -3
if(atributo <=0) return;
{this.somador += atributo}
Melhorando Função
Mantendo a segurança de variáveis afim que não possam ser alteradas por fora da função.
conta.saldo = 180000;
_Segurança
Para manter um atributo com a sua manipulação estritamente atrelada as funções de sua classe atribua antes do atributo o "_" ou sua variante "#"
Protegendo atributo
Método set é possível referenciar o tipo de atributo aceitável.
set cliente(novoValor)
{
if(novoValor instanceof Cliente)
{this._cliente = novoValor;}
}
Método get é possível realizar a leitura de determinado atributo. Mas nunca altera-lo.
get saldo()
{
return this._saldo;
}
Utilizando
console.log(contaH.saldo)
Alteração dos objetos via função
Cuidado com as operações realizadas em funções, essas alteram os objetos já que o mesmo esta sendo passado como referencia.