13 oct 2014

La clase Math en Java

Características:

o   Clase utilizada para cálculos matemáticos.

o   Todos sus métodos son estáticos, por lo que no hay que crear objetos, sino que sus métodos se invocan sobre el nombre de la clase. Por ejemplo:
longit = 2 * Math.PI * radio;

o   Se puede hacer uso de la importación estática, que consiste en incluir una sentencia import para los métodos estáticos que nos interesen, en este caso pueden ser todos, para no tener que utilizar el nombre de la clase cada vez que invoquemos un método.
import static java.lang.Math.*;
longit = 2 * PI * radio;


Constantes de la clase Math:

o   static double E;
Define el valor del número e.
o   static double PI;
Define el valor del número pi.
float longit= 2 * Math.PI * radio;



Principales métodos de la clase Math:


Para los siguientes 3 métodos, los tipos posibles son int, float, double y long:
·        abs(tipo n)
Devuelve el valor absoluto del argumento.
·        max(tipo n1, tipo n2).
Devuelve el mayor valor de los argumentos.
mayor= Math.max(56, n2);
·        min(tipo n1, tipo n2).
Devuelve el menor valor de los argumentos.


o   double  ceil(double t)
Devuelve el entero mayor más próximo al valor del argumento.
Math.ceil(67.56); // Devuelve 68.0

o   double floor(double t)
Devuelve el entero menor más próximo al valor del argumento.
Math.ceil(67.56); // Devuelve 67.0

o   double round(double t)
Devuelve el entero más próximo al valor del argumento.
Math.ceil(67.56); // Devuelve 68.0

o   double pow(double a1 double a2)
Calcula la potencia del primer argumento elevado al segundo.

o   double random()
Devuelve un número aleatorio mayor o igual que 0.0 y menor que 1.0

Cuenta con muchos más métodos, como los relacionados con la trigonometría, con los logaritmos, con la conversión de grados, con las operaciones exactas, etc.

10 oct 2014

Las clases de envoltorio (wrapper) en Java

Se trata de una colección de clases asociadas a los tipos primitivos, que añaden funcionalidades.

Proporcionan una serie de atributos y de métodos estáticos.

Para los tipos numéricos, los atributos son:

BYTES  número de bytes, para codificar un objeto del tipo básico.

MIN_VALUE menor valor que se puede codificar en el tipo básico

MAX_VALUE mayor valor que se puede codificar en el tipo básico

SIZE tamaño en bits, del tipo básico

TYPE tipo básico asociado



Las 8 clases de envoltorio son:

Tipo Básico
Clase de envoltorio
boolean
Boolean
char
Character
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double


Algunos de sus usos son:

o   Encapsular un dato básico como un objeto. Por ejemplo puede ser necesario para añadir elementos a la clase Vector, que obliga a que sean objetos.
Ej1.:   Float f1 = new Float(34,56);
Ej2.:   Float f2 = new Float(34,56);

o   Recuperar el dato básico, asociado a un objeto de la clase de envoltorio.
Ej.:      float f = f1.floatValue();

o   Convertir cadenas de caracteres a tipos numéricos básicos.
Ej.:       String cad= 45,67;
float f = Float.parseFloat(cad);

o   Convertir objetos de una clase envoltorio en otros tipos primitivos.
Ej.:      Integer n= new Integer(45);
float f = Integer.doubleValue();

o   Autoboxing/autounboxing. Consiste en encapsular o desencapsular un objeto, utilizando el operador de asignación.
Ej.:      Float f1 = 34,56;
float f = f1;


Ejemplo:

public class Envoltorio {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println("Para los bytes:");
        System.out.println("El número de bytes es "+Byte.BYTES);
        System.out.println("El valor máximo es "+Byte.MAX_VALUE);
        System.out.println("El valor mínimo es "+Byte.MIN_VALUE);
        System.out.println("El número de bits es "+Byte.SIZE);
        System.out.println("El type es "+Byte.TYPE);
 



9 oct 2014

La clase String en Java

Características


En Java no existe un tipo primitivo para manejar cadenas de caracteres, se hace a través de la clase String.

Debido a su amplia utilización, la creación de objetos y asignación de valores puede hacerse como si se tratara de una clase normal, o como si fuera un tipo primitivo.

Ejs.:
String cad1= new String(Frase uno);
String cad2= Frase dos;

Las cadenas son constantes por lo que no pueden ser modificadas una vez creadas. Al asignarles un nuevo valor se les da una nueva dirección de memoria y el recolector se encarga de gestionar la antigua.

Para la concatenación se utiliza el operador +.


Principales métodos de la clase String

length()
Devuelve la longitud de la cadena.
String cad1= frase uno;
System.out.println(cad1.length());  //devuelve 9

charAt (int ind)
Devuelve el carácter de la posición ind.
char car;
car= cad.charAt(0);          // car contiene f

compareTo (String otroStr)
Compara léxicamente dos cadenas. Devuelve 0 si son iguales, un valor negativo si el primer string es menor que el segundo y uno positivo si es mayor que el segundo.
String cad2= frase dos;
num= cad1.compareTo(cad2);  // num vale 17

compareToIgnoreCase (String otroStr)
Igual que el método anterior, pero ignorando mayúsculas y minúsculas.

indexOf(String str).
Devuelve la posición de la cadena pasada como argumento sobre la primera cadena.
cad3 = cad1 + ' ' + cad2;
num= cad3.indexOf(cad2);   // num vale 10

substring(int inicio, int fin)
Devuelve una subcadena de la original, que empieza en la posición inicio y termina en fin.
cad3= cad2.substring(2,5);  //devuelve ase

replace (char viejo, char nuevo)
Reemplaza las ocurrencias del carácter viejo por el nuevo. Existen variantes para reemplazar cadenas, primeras ocurrencias o para utilizar expresiones regulares.
cad3= cad2.replace('s', 'z');  //devuelve fraze doz

toUpperCase()
Convierte en mayúsculas la cadena.
cad3 = cad2.toUpperCase();  //devuelve FRASE DOS

toLowerCase ()
Convierte en minúsculas la cadena.

split(String str)
Devuelve un vector de strings, obtenido al dividir la cadena en subcadenas definidas por el delimitador str.
cad3= "Ana#Gil#Laso#45#Lugo#68";
String cads[];
cads= cad3.split("#");
for (String cad:cads)
System.out.println(cad);
Se obtiene:
Ana
Gil
Laso
45
Lugo
68
trim()
Devuelve la cadena eliminando los espacios en blanco al principio y final de la cadena.
cad3= "   frase    ";
System.out.println(cad3.length());  //devuelve 12
cad3= cad3.trim();
System.out.println(cad3.length());  //devuelve 5

valueOf(tipo_básico tp)
Es un método estático de clase. Devuelve, como una cadena, el valor del argumento pasado como un tipo básico. Existe un método por cada tipo básico.
En muchas ocasiones no es necesario utilizarlo porque se produce una conversión de tipos implícita.
boolean varbool= true;
cad3= String.valueOf(varbool);
System.out.printf("El valor de varbool es: %s%n", varbool); //conversión implícita
System.out.printf("El valor de varbool es: %s%n",cad3);
Se obtiene:
El valor de varbool es: true
El valor de varbool es: true