Video Transcript
Olá pessoal, nas salvas vamos aprender sobre propriedades estáticas.
Então temos aqui propriedade de salário, propriedade de nome, mas essas propriedades
são, só existem em uma instância.
Isto é, quando nós usamos new, seguido do nome da classe, nesse caso new funcionário,
aqui uma nova instância, um objeto baseado nessa classe funcionário.
Então a instância tem as propriedades, então cada instância de um funcionário vai ter
um salário diferente, ainda que o número seja o mesmo, serão variáveis em locais
diferentes.
Mas como podemos criar uma propriedade que é comum a todas as instâncias?
Por exemplo, a propriedade, que não importa o número de instâncias que você crie, só
vai ter uma variável em um local, na memória, propriedade estática, que é comum a todas
as instâncias, e pode até ser acessada sem ter nenhuma instância.
Isto é através do nome da classe.
Então vamos supor aqui só como exemplo, que cada funcionário contribua certo percentual
do salário à sua aposentadoria.
Por exemplo, você tem uma variável chamada contribuição, que é do tipo number, que
vai ser algum percentual.
Então essa variável aqui contribuição é comum a todos os funcionários.
Agora tem um valor que a gente vai definir a todos os funcionários, então vamos definir
como static contribuição.
Vamos dizer que é 1%, 0.01, significa multiplica-vo 100 dá 1%.
Então essa propriedade contribuição é estática, static, significa que não importa quantas
instâncias criamos, sempre só vai ter uma variável contribuição com o valor 0.01,
que é comum a todas as instâncias, e pode até ser acessada através da classe sem nenhuma
instância.
Então eu criei isso aqui, legal.
Vamos testar aqui embaixo em outro arquivo sobre classe.ts, fazer o seguinte, antes de
criar funcionário, vou dizer funcionário.contribuição.
Então vou dar o console log, vou dizer a contribuição de cada funcionário.
Então eu vou dar a interpolação e vou pôr o valor, funcionário.contribuição aqui.
Vamos ver aqui no que dá.
O erro não existe no type funcionário porque eu esqueci de salvar meu arquivo.
Agora eu está salvo node des- sobre classes.
Então está dizendo que a contribuição de cada funcionário é 0.01, note que nós usamos
o nome da classe, ponto a propriedade estática.
Não precisa ter nenhuma instância para acessar esse valor, porque o valor é comum a todas
as instâncias depois se quiser acessar também dá.
Então se quiser até botar isso para percentual, multiplica para 100 e ponha percentual aqui,
símbolo ali, testc node está 1%
Legal, agora você também pode acessar essa propriedade estática de cada instância,
por exemplo no complementar você pode adicionar mais uma linha aqui dizendo eu contribuo tal
percentual, nesse caso para poder acessar a contribuição da classe aqui faz o seguinte,
você pode fazer duas maneiras, a primeira é pôr o nome da classe como a gente já tinha
feito antes, funcionário ponto contribuição, contribuição, vou multiplicar para o 100 e
dar o percentual aqui, aposentadoria, vou parar, testc, então antes de sugerir esse
9% tem que ser aqui eu contribuo 1% ou também pode outra maneira em vez de ter funcionário
ponto contribuição também dá, vou só falar desse, vamos ver se funciona como desse,
nesse caso vamos ver propriedade, propriedade, contribuição, static, member, não nesse caso
não dá, só pode usar o desse se você tiver o método estático na verdade, por exemplo,
então nesse caso não dá, tem que falar com funcionário contribuição, vamos ver aqui
criar um método estático agora para poder dar a contribuição de cada funcionário, como
se fosse um gather, por exemplo aqui, vou falar com obter contribuição a função que retorna
funcionário ponto, vou dar o console log na verdade, imprimir, reduição, console log,
vou dizer cada funcionário contribui, nesse caso aqui eu vou fazer esse método para
ser static, static, vai ser método público e nem precisa, contribui e tal, vamos começar
com funcionário ponto contribuição, nesse caso aqui é um método estático, esse que
nem tem nada vou dar void, então vamos ver o que acontece nesse caso aqui, só comentar
esses outros aqui, o console log aqui, vou substituir com o método estático funcionário
ponto imprimir contribuição, que na verdade seria o que a gente já tinha feito aqui,
é certo que está agora dentro da classe, note que não tem instância de funcionário,
é só a classe aqui, ponto imprimir contribuição método estático, ele vai aqui bater aqui
e mostrar cada funcionário contribui e tal, testes aqui no terminal, aí eu fiz um funcionário,
o, sdc de novo, download aqui, onde cada funcionário contribui 0.01, correto, agora
nesse caso aqui pode usar o des, porque tem um método estático e o des se refere à
classe, a descontribuição naquele caso, dá o testes aqui, ah, a gente dá o clear, testes
c, não funcionou da mesma maneira 0.01, é um detalhe que o des pode ser usado se for
um método estático para se referir à própria classe, o método ou o membro estático, mas
no caso aqui da, quando usar um membro de uma instância, tem que usar essa maneira aqui,
porque na verdade não tem contribuição associada a uma instância mais à classe, né, tá bom
então, por essa aula é só e até a próxima.