Java es un lenguaje de programación orientado a objetos y los objetos son los principales componentes básicos de Java. Sin embargo, Java también proporciona el concepto de clase estática. Una clase estática es una clase que solo puede contener métodos estáticos, variables y clases anidadas. En este artículo, exploraremos qué es una clase estática, cómo funciona y su implementación en Java.
Clase estática en Java
Una clase estática en Java es una clase de la que no se pueden crear instancias. Es decir, no podemos crear objetos de clase estática. Sólo podemos acceder a sus miembros utilizando el propio nombre de la clase. En otras palabras, una clase estática es una clase que sólo contiene miembros estáticos. Las clases estáticas se utilizan a menudo para agrupar métodos de utilidad relacionados. Por ejemplo, la clase Math en Java es una clase estática que proporciona varias operaciones matemáticas, como encontrar el valor máximo o mínimo, funciones trigonométricas y más. Podemos acceder a los métodos en la clase Math usando el nombre de la clase y el operador de punto, así: Math.max(5, 10) .Ejemplo
Veamos un ejemplo de una clase estática en Java. Supongamos que queremos crear una clase para realizar varias operaciones con cadenas, como invertir una cadena, encontrar la longitud de una cadena y más. En este ejemplo, hemos creado una clase estática llamada StringUtils , que contiene dos métodos estáticos: inverso y longitud . Estos métodos toman una cadena como argumento y devuelven la cadena invertida y la longitud de la cadena, respectivamente. En el método principal , creamos una cadena str y la pasamos a los métodos `reverse` y `length` de la clase 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);
}
}
La salida del programa será:
!dlroW ,olleH 13
En el siguiente ejemplo actualizado, agregamos una clase anidada estática llamada Formatter dentro de la clase StringUtils . Esta clase anidada estática también contiene un método estático llamado formato que toma una cadena y devuelve su versión en mayúsculas.
En el método principal , hemos utilizado la clase anidada estática Formatter para formatear la cadena str e imprimirla en la consola. También hemos llamado a los métodos inverso y de longitud de la clase StringUtils para invertir la cadena y encontrar su longitud, 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);
}
}
La salida del programa será:
¡HOLA MUNDO! !dlroW ,olleH 13
Como puede ver, las clases estáticas en Java también pueden contener clases estáticas anidadas, que se pueden utilizar para agrupar funciones relacionadas.
GO TO FULL VERSION