Java é uma linguagem de programação orientada a objetos e os objetos são os principais blocos de construção em Java. No entanto, Java também fornece o conceito de classe estática. Uma classe estática é uma classe que só pode conter métodos estáticos, variáveis e classes aninhadas. Neste artigo, exploraremos o que é uma classe estática, como ela funciona e sua implementação em Java.
Classe estática em Java
Uma classe estática em Java é uma classe que não pode ser instanciada. Ou seja, não podemos criar objetos de uma classe estática. Só podemos acessar seus membros usando o próprio nome da classe. Em outras palavras, uma classe estática é uma classe que contém apenas membros estáticos. Classes estáticas são frequentemente usadas para agrupar métodos utilitários relacionados. Por exemplo, a classe Math em Java é uma classe estática que fornece várias operações matemáticas, como encontrar o valor máximo ou mínimo, funções trigonométricas e muito mais. Podemos acessar os métodos da classe Math usando o nome da classe e o operador ponto, assim: Math.max(5, 10) .Exemplo
Vamos dar uma olhada em um exemplo de classe estática em Java. Suponha que queiramos criar uma classe para realizar várias operações com strings, como reverter uma string, encontrar o comprimento de uma string e muito mais. Neste exemplo, criamos uma classe estática chamada StringUtils , que contém dois métodos estáticos: reverse e length . Esses métodos usam uma string como argumento e retornam a string invertida e o comprimento da string, respectivamente. No método principal , criamos uma string str e a passamos para os métodos `reverse` e `length` da classe StringUtils .public class StringUtils {
public static String reverse(String str) {
StringBuilder sb = new StringBuilder(str);
return sb.reverse().toString();
}
public static int length(String str) {
return str.length();
}
public static void main(String[] args) {
String str = "Hello, World!";
String reversedStr = StringUtils.reverse(str);
int strLength = StringUtils.length(str);
System.out.println(reversedStr);
System.out.println(strLength);
}
}
A saída do programa será:
!dlroW ,olleH 13
No próximo exemplo atualizado, adicionamos uma classe estática aninhada chamada Formatter dentro da classe StringUtils . Esta classe estática aninhada também contém um método estático chamado format que pega uma string e retorna sua versão em maiúscula.
No método principal , usamos a classe aninhada estática Formatter para formatar a string str e imprimi-la no console. Também chamamos os métodos reverso e de comprimento da classe StringUtils para reverter a string e encontrar seu comprimento, respectivamente.
public class StringUtils {
// nested Static class
public static class Formatter {
public static String format(String str) {
return str.toUpperCase();
}
}
public static String reverse(String str) {
StringBuilder sb = new StringBuilder(str);
return sb.reverse().toString();
}
public static int length(String str) {
return str.length();
}
public static void main(String[] args) {
String str = "Hello, World!";
// Using static class
String formattedStr = StringUtils.Formatter.format(str);
System.out.println(formattedStr);
String reversedStr = StringUtils.reverse(str);
int strLength = StringUtils.length(str);
System.out.println(reversedStr);
System.out.println(strLength);
}
}
A saída do programa será:
OLÁ MUNDO! !dlroW ,olleH 13
Como você pode ver, as classes estáticas em Java também podem conter classes aninhadas estáticas, que podem ser usadas para agrupar funcionalidades relacionadas.