Um momento
Aula 38
Cursos / Aprenda TypeScript - Tutorial Básico Vindo do JavaScript
Atributos e Métodos Estáticos de uma Classe de TypeScript (static)

Summary

Resumo sobre Propriedades Estáticas em Classes

Nesta aula, discutimos o conceito de propriedades estáticas em classes. Aqui estão os principais pontos abordados:

  • Propriedades de Instância: Cada instância de uma classe possui propriedades que são únicas para essa instância. Por exemplo, duas instâncias da classe Funcionário podem ter salários diferentes, mesmo que os números sejam os mesmos.

  • Propriedades Estáticas: Para criar uma propriedade que é comum a todas as instâncias, utilizamos propriedades estáticas. Essas propriedades estão alocadas em um único local na memória e podem ser acessadas diretamente pela classe, sem a necessidade de criar uma instância.

    • Exemplo: Consideramos uma propriedade contribuição que representa a porcentagem do salário que cada funcionário contribui para a aposentadoria. Esta propriedade é definida como static, permitindo que seja acessada através da classe Funcionário.
  • Uso de Propriedades Estáticas:

    • Podemos acessar a propriedade estática da classe usando Funcionário.contribuição. Não é necessário criar uma instância.
    • Para exibir o valor, aplicamos lógica de formatação, como multiplicar por 100 para apresentar em forma percentual.
  • Métodos Estáticos: Também se discutiu a implementação de métodos que são chamados de forma estática. Um método pode retornar a contribuição estática, sendo invocado diretamente pela classe.

    • O método é criado como static dentro da classe e pode acessar a propriedade estática da mesma forma, através do nome da classe.
  • Observações:

    • Um detalhe importante é que, enquanto o this pode ser usado para referenciar a própria classe dentro de métodos estáticos, para referenciar propriedades estáticas, o acesso deve ser feito diretamente pelo nome da classe.

Conclusão

As propriedades e métodos estáticos oferecem uma maneira eficiente de gerenciar atributos e comportamentos que são comuns a todas as instâncias de uma classe. Isso diminui o uso desnecessário de memória e simplifica o acesso a informações compartilhadas.

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.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: