sábado, 1 de julio de 2017

Las clases asociadas a los tipos primitivos y Clase Math en Java



¿Qué es una clase en java?
Las clases en Java (Java Class) son plantillas para la creación de objetos, en lo que se conoce como programación orientada a objetos, la cual es una de los principales paradigmas de desarrollo de software en la actualidad.

Clases asociadas a los tipos primitivos
Los tipos predefinidos boolean, char, int, long, float y double son tipos simples, no son clases. Para facilitar la programación en Java se han creado clases asociadas a los tipos predefinidos. Estas clases proporcionan métodos útiles para convertir cadenas de texto a otros tipos, para imprimir los números con diversos formatos y para describir los tipos simples.

Estas clases generan automáticamente una instancia cuando se usan tipos simples en contextos en los que se espera un objeto. Además, pueden utilizarse en expresiones en donde se espera un tipo simple.

Las clases asociadas a los tipos primitivos son:


Clase

Tipo primitivo asociado
Boolean boolean
boolean
Character
char
Integer
int
Long
long
Float
float
Double
double












Estas clases tienen los siguientes métodos:

Método constructor a partir de un valor de tipo simple

Character letra = new Character('A');
Integer numero = new Integer(10);

Método constructor que recibe una cadena de texto y la traduce al tipo simple

Integer numero = new Integer("120");

Método toString() que transforma el valor almacenado en una cadena

Integer numero = new Integer("100");
System.out.println(numero.toString());

Método equals() para comparar el valor almacenado

Integer numero1 = new Integer("100");
Integer numero2 = new Integer("101");
System.out.println(numero2.equals(numero1));

La clase Math
La clase Math contiene constantes y métodos de uso común en matemáticas. Todas las operaciones que se realizan en esta clase utilizan el tipo double. Contiene la constante pi (Math.PI) y el número de Euler (Math.E). En las funciones trigonométricas, los ángulos se expresan en radianes y los métodos devuelven valores de tipo double. La clase Math incluye funciones como potenciación, redondeo, cuadrado, raíz cuadrada y muchas más.

Esta clase es como una biblioteca de métodos estáticos que nos permite realizar operaciones matemáticas.

Los metodos  son los siguientes:
  • abs( double a );
  • round( double a );   Devuelve el entero más cercano a un número suministrado
  • min( int a, int b );     Devuelve el menor de los dos numeros suministrados
  • max(int a, int b );     Devuelve el mayor de los dos numeros suministrados
  • floor( double a );
  • ceil( double a );
  • random( );                Devuelve un numero aleatorio entre el 0 y el numero asignado


Como esto son bibliotecas, hay que importarlas a la clase y esto se escribe antes de la clase, de esta forma:

import java.lang.Math.*;        // Importamos la biblioteca Math. El asterisco significa, importar todos los paquetes dentro de Math

public class Ejem01{
    public static void main(String[ ]args){
        
    }
}

Intenta proporcionar un numero decimal, ejecuta y observa el resultado en la consola, por ejemplo yo te voy a colocar este:

import java.lang.Math.*;    
public class Ejem01{
    public static void main(String[ ]args){
        System.out.println( Math.round(4.9) );
    }
}

El resultado en la consola sera 5.
Lo que hace es redondear el numero decimal al numero mas cercano, como es 4.9 el mas cercano es 5. Si fuese 4.2 el resultado seria 4.
Recuerda tambien que los decimales no se separan con comas, sino con puntos.

Pasamos ahora al metodo max() y min(). intenta hacer el siguiente ejemplo:

import java.lang.Math.*;       
public class Ejem01{
    public static void main(String[ ]args){
        System.out.println( Math.min(5,2) );
        System.out.println( Math.max(5,2) );
    }
}

El resultado para min() sera 2, y el resultado para max() sera 5. Los numeros se pueden sustituir por variables.

Ahora vamos a ver el metodo random(). 

import java.lang.Math.*;       
public class Ejem01{
    public static void main(String[ ]args){
        System.out.println( Math.round(Math.random() * 50) );
    }
}

Aqui, lo que le hemos indicado es que nos muestre por consola un numero aleatorio comprendido entre el 0 y el 50. Cada vez que ejecutaras el programa, te mostrara un numero diferente comprendido entre los numeros 0 y el 50.
Primero aplicamos un metodo "round()" y dentro de sus parametros, aplicamos el metodo "random()".

¿Por qué aplicamos primero un metodo "round()"? 
Pues, para que el numero que seleccione al azar, que no sea decimal y lo redondee.

Nota: cuando queremos crear un numero aleatorio y guardarlo en una variable, al número aleatorio deberemos indicarle de que tipo es, aqui el ejemplo:

int azar = (int) Math.round(Math.random()*50);