====== Clase Math ======
==== Package java.lang ====
En el paquete java.lang tenemos diferentes clases. Este paquete se importa por defecto en todo programa en Java. Por lo tanto, no es necesario poner la cláusula “import”. Dentro de este paquete tenemos gran parte de las clases más utilizadas en java. Podemos ver su contenido en la documentación del api de Java buscando por "packages".
https://docs.oracle.com/javase/9/docs/api/java/lang/package-summary.html
Dentro de este paquete tenemos la clase String, clase con la que ya hemos trabajado para almacenar cadenas de texto. Ademas tenemos las clases envoltorio de los tipos de datos primitivos (int, char, float, boolean, float, etc.) siendo estas Integer, Character, Boolean, Float, etc.
===== Clase Math ====
La clase Math es una clase que no tiene constructor (es privado) por lo que no podemos construir instancias de esta clase.
//No puedo crear objetos de esta clase
Math miVariable = new Math();
miVariable.random();
Sin embargo todos los elementos que contiene (métodos o constantes) son estáticas (static). Esto quiere decir que puedo usarlos sin tener un variable de su clase.
//Si puedo usar sus método directamente
double valorAleatorio = Math.random()
==== Constantes de la clase Math =====
La clase Math contiene sobre todo métodos para realizar operaciones matemáticas. Además, contiene dos constantes: el número Pi y el numero e.
^ Constante ^ Descripción ^ Tipo de datos ^
| PI | Devuelve el valor de PI | double |
| E | Devuelve el valor de E | double |
//Muestro sus valores por pantalla
System.out.println("El valor de la constante PI es: " + Math.PI);
System.out.println("El valor de la constante número E es: " + Math.E);
Ahora voy a obtener el área de una circunferencia de radio 10.0. La fórmula es: área = PI * radio2
Con la clase Math puedo usar la constante PI y el método para calcular potencias //pow()//.
double radio = 10.5;
double area = Math.PI * Math.pow(radio, 2);
System.out.println("El area de la circumferencia es: " + area);
==== Métodos Clase Math ====
Algunos de los métodos más comunes de esta clase son:
^ Método ^ Descripción ^ Parámetros que recibe ^ Tipo de datos que devuelve ^
| abs() | Devuelve el valor absoluto de un número | Un parametro que puede ser un int, double, float o long | El mismo tipo que introduces |
| round() | Devuelve el entero más cercano | double o float | long (si introduces un double) o int (si introduces un float) |
| floor() | Devuelve el entero más cercano por debajo | double | double |
| ceil() | Devuelve el entero más cercano por arriba | double | double |
| max() | Devuelve el mayor entre dos valores | Dos parametros que pueden ser dos int, double, float o long | El mismo tipo que introduces |
| min() | Devuelve el menor entre dos valores | Dos parametros que pueden ser dos int, double, float o long | El mismo tipo que introduces |
| random() | Devuelve un numero aleatorio entre 0 y 1 | ninguno | Un double entre 0 y 1, sin llegar a 0 ni a 1 |
| sqrt() | Devuelve la raíz cuadrada de un número | double | double |
| pow() | Devuelve un número elevado a un exponente | Dos parámetros double (base y exponente) | double |
| sin() | Devuelve el seno de un ángulo | double | double |
| tan() | Devuelve la tangente de un ángulo | double | double |
| cos() | Devuelve el coseno de un ángulo | double | double |
Math.random() * 10; //Obtengo un número aleatorio entre 0 y 10
Math.min(7, 9); //Obtengo el menor entre 7 y 9
Math.round(14.7); //Redondeo el numero 14.7
----
(c) {{date> %Y}} Fernando Valdeón