Métodos Utilitários Estáticos
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 33 de 56.
Métodos estáticos são funções utilitárias que pertencem à própria classe, em vez de às instâncias da classe. Eles são úteis para funções que não exigem acesso a dados específicos da instância.
Vamos criar uma classe com um método utilitário estático:
class MathHelper {
// Define um método estático
static square(number) {
return number * number;
}
}Para chamar um método estático, você usa o nome da classe diretamente:
// Chame o método estático sem criar uma instância
const result = MathHelper.square(5);
console.log(result); // 25Observe que não precisamos criar uma nova instância com new MathHelper(). Métodos estáticos são perfeitos para funções utilitárias que realizam operações sem precisar de dados da instância.
Desafio
Crie uma classe chamada StringUtils com um método estático chamado capitalize que recebe uma string como argumento e retorna a mesma string com a primeira letra em maiúscula. Por exemplo, se a entrada for "javascript", o método deve retornar "Javascript". Exporte esta classe.
- Verifique se a string está vazia:
if (!str || str.length === 0)(Sem essa verificação, uma string vazia pode causar problemas).!strverifica se énull/undefined(previne erros)str.length === 0verifica se a string está vazia (retorna "" em vez de causar um erro)
- Obtenha o primeiro caractere:
str.charAt(0) - Transforme-o em maiúscula:
.toUpperCase() - Obtenha o restante da string:
str.slice(1)(da posição 1 até o fim) - Combine: primeiro caractere em maiúscula + restante da string
Folha de consulta
Métodos estáticos são funções utilitárias que pertencem à própria classe, em vez de às instâncias. Eles não requerem acesso a dados específicos da instância.
Defina um método estático usando a palavra-chave static:
class MathHelper {
static square(number) {
return number * number;
}
}Chame métodos estáticos diretamente na classe sem criar uma instância:
const result = MathHelper.square(5);
console.log(result); // 25Métodos de string úteis para utilitários estáticos:
str.charAt(0)- obtém o primeiro caracterestr.toUpperCase()- converte para maiúsculasstr.slice(1)- obtém a substring da posição 1 até o fim!str || str.length === 0- verifica se é nulo/indefinido ou uma string vazia
Experimente você mesmo
import { StringUtils } from './stringUtils.js';
// Não modifique o código abaixo
console.log(StringUtils.capitalize("programming"));Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação Orientada a Objetos
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe Circle14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com Composição9Métodos e Propriedades Estáticos
Nível de Classe vs. Nível de InstânciaPropriedades EstáticasMétodos Utilitários EstáticosDesafio de Recapitulação