Hola Mónica, espero que estés bien
Entiendo tu duda y es totalmente válida. El uso de casting en Java, especialmente cuando trabajamos con tipos primitivos, puede parecer un poco confuso al principio.
La razón por la que no simplemente se "pone de frente" el tipo que deseas usar, como mencionas, es porque a veces el tipo de dato original no es compatible directamente con el tipo de dato que deseas utilizar. Por ejemplo, si tienes un double
y deseas convertirlo a un int
, simplemente asignarlo directamente no funcionaría porque Java necesita saber que estás consciente de que podrías perder información en el proceso (como la parte decimal).
El casting explícito es una forma de decirle al compilador que entiendes las implicaciones de la conversión y que estás de acuerdo con ellas. En el ejemplo que diste, convertir un double
a un int
implica que la parte decimal será truncada. Al usar (int)
, estás indicando que aceptas esta pérdida de precisión.
Por otro lado, cuando el tipo de dato de destino puede contener todos los valores del tipo de dato de origen, como al asignar un int
a un double
, el casting es implícito y el compilador lo hace automáticamente porque no hay riesgo de pérdida de información.
Espero que esto aclare tu duda. ¡Espero haber ayudado y buenos estudios!