18 jun 2008

Utilizando los atributos privados de un objeto pasado a un constructor de ese mismo objeto

Sí, el título es algo largo, pero es descriptivo:
Se pueden acceder a los atributos privados de un objeto en el contructos de otra instancia de ese mismo objeto.
¿Que quiere decir esto? Pues que tenemos una excepción a la regla de que los atributos privados solo pueden ser accesibles por métodos del mismo objeto. Pero si pasasemos una instancia de ese objeto a un método de otra instancia de la misma clase, esos valores no podrían ser accesibles, pero si se pasa una instancia de esa clase a un constructor de otra instancia de esa misma clase, sí podemos accesar a los atributos privados.
Esto es un caso especial y con un ejemplo se ve mejor:



public class MiClase{

private int miAtributo;

public MiClase(MiClase clase){
this.miAtributo=clase.miAtributo;
}
}

12 jun 2008

Validaciones, de String a entero (int) y double

Método que informa si dos números son compatibles el primero con un entero y el segundo con un double. Son enviados como String y son convertidos, si es posible, para verificar el formato de número correspondiente.

public static String validate(String num1, String num2){
try {
int tempInt=Integer.parseInt(num1);
} catch (NumberFormatException e) {
return ("Formato de numero entero incorrecto");
}
try {
double tempDbl=Double.parseDouble(num2);
} catch (NumberFormatException e) {
return ("Formato de numero decimal incorrecto");
}
return "All Ok";
}

De String a Date (Fecha)

Aquí un pequeño ejemplo de como verificar que una fecha sea valida, viniendo de un String y al mismo tiempo convertirla a Date. El método parse regresara un null si no se ha podido completar la transformación y lanzará un ParseException, que está definido en el padre de SimpleDateFormat, la clase DateFormat.

public static String validData(String s, String mensaje){
try {
SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
Date fecha = formatoFecha.parse(s);
} catch (Exception e) {
return "Formato de fecha invalido, formato valido: 'dd/mm/yyyy";
}
return "Formato de fecha correcto";
}