19 julio 2009

Tipos de datos


Hola como están, seguimos acá investigando JavaFX y empezaremos a ver sus tipos de datos y aprenderemos como trabajar con ellos.
Bien, comencemos

Tipos de datos:

  1. String
  2. Number and Integer
  3. Boolean
  4. Duration
  5. Void
  6. Null
String:
Es el tipo de dato que debemos usar para guardar representación de caracteres, prácticamente funcionan igual que en java pero aquí encontraremos algunas diferencias.

Declaración e inicialización

var cadena1 = 'Cadena 1';
var cadena2 = "Cadena 1";
Como podemos notar aquí esta permitido inicializar o asignar un String ya sea con comillas dobles o comillas simples en cambio en Java solo podíamos hacerlo con comillas dobles. Además si notamos no es necesario decirle que es del tipo String y este tipo ya se asigna automáticamente.

Muchas veces deseamos concatenar distintas variables del tipo String, en JavaFX esto se puede
resolver usando dentro de los " " un closure en el cual se evalúa el String y este es concatenado
en la nuevo String, veamos un ejemplo para aclarar esto

def nombre = 'Joe';
var resultado = "Hello {nombre}";
println(resultado);
Si ejecutamos este código veremos que aparece por consola la frase "Hello Joe" ya que la variable resultado es una referencia al nuevo String que se genera

Nota: Se le llama closure al hecho de que se creen referencias de las variables locales de donde se definió el closure, en el propio closure -Mínima explicación-
def valor = true;
var respuesta = "The answer is {if (valor) "Yes" else "No"}";
Como vemos aquí estamos definiendo un closure con un if que devuelve "Yes" or "No" podríamos pensar esto como una función que recibe como parámetro la variable valor, en cambio aquí simplemente el closure tiene acceso a las referencias desde donde el ha sido definido.

Para no hacerla largo con los String mostraremos el último ejemplo donde veremos como se concatenan dos referencias a String
def frase1 = "This example ";
def frase2 = "joins two strings.";
def fraseFinal = "{frase1}{frase2}";
println(fraseFinal);

Number and Integer:

Estos tipos de datos son los referidos a los tipos numéricos y vamos a distinguir dos tipos los números enteros y los de punto flotante.

def numeroUno = 1.0; // Aquí el compilador infiere el tipo de dato Number
def numeroDos = 1; // Aquí el compilador infiere el tipo de dato Integer

// Aquí hacemos una declaración explicita
def numeroTres : Number = 1.0;
def numeroCuatro : Integer = 1;
Usualmente se recomienda usar el tipo Integer y dejar el tipo Number solo para
los casos realmente necesarios.

Boolean:
Este valor es igual al tipo Boolean de Java y acepta los valores true/false.
if (isAsleep) {
wakeUp();
}
El código que ingresemos dentro de "( )" será evaluado en cambio el código ingresado dentro de "{ }" será ejecutado

Duration:
Este es un tipo especial de JavaFX que se encarga de representar una unidad de tiempo
5ms; // 5 milliseconds
10s; // 10 seconds
30m; // 30 minutes
1h; // 1 hour
Veremos con mayor detenimiento este tipo cuando empecemos a usar Animaciones ya que ahí queremos que en distintos momentos de un Time Line se ejecuten diversas acciones.

Void:
Creo que este ya es conocido por todos, pero diremos que es el tipo que usamos para indicar que una función no retorna ningún valor.
function imprimir() : Void {
println("Esta funcion no retorna nada!");
}
function imprimir() {
println("Esta funcion no retorna nada!");
}
Como podemos notar tenemos dos formas que son validas para indicar que la función no retorna ningún valor, ya sea explícitamente con el : Void o implícitamente sin indicar su tipo de retorno

Null:
Este tipo es especial ya que nos permite indicar la falta de un valor normal, cuando declaramos variables están podrían estar referenciando datos no validos.

Estos serian los 6 tipos de datos que se encuentran dentro de JavaFX, ahora solo nos queda empezar a trabajar mas con ellos e ir conociéndolos, ya veremos como son declarados dentro de clases y sus formas de acceso.

Saludos

1 comentario:

  1. Muchas gracias por los posts, son sencillos y muy claros.

    ResponderEliminar