Todos los productos
Search
Centro de documentos

OpenSearch:Definición de tipos y variables en Cava

Última actualización: Sep 05, 2026

Cava admite los siguientes dos tipos de definiciones.

Definición de variables

Cava admite las siguientes dos definiciones de tipos.

  • Variables locales

  • Variables miembro de clase

Nota: Cava no admite variables de clase. Definir una variable de clase provoca un error de compilación. Para obtener más información, consulte Cava modifiers.

Variables locales

Variables de tipo numérico

  • Defina una variable local a de tipo int y asígnele el valor 10.

class Example {
    // ...
    int test() {
        int a; // <==
        a = 10;
        return a + 1;
    }
    // ...
}
  • Defina una variable local a con el valor inicial 10.

class Example {
    // ...
    int test() {
        int a = 10; // <==
        return a + 1;
    }
    // ...
}

Variables de objeto

Después de definir una variable de objeto, debe utilizar la instrucción new para crear el objeto correspondiente. De lo contrario, el valor de la variable será null. Acceder a una variable nula provoca una NullPointerException.

class Example {
    public double PI;
    Example(double customPI) {
        this.PI = customPI;
    }
    static int main() {
        Example a = new Example(3.1415926); // <==
        return 0;
    }
}

Variables de arreglo

  • Defina un arreglo int llamado a con 10 elementos, inicializado con los valores [0..9].

class Example {
    // ...
    int test() {
        int[] a = new int[10]; 
        for (int i = 0; i < a.length; ++i) {
            a[i] = i; 
        }
        return a[0];
    }
    // ...
}
  • Puede utilizar una lista de inicialización para definir e inicializar un arreglo int con los valores [0..9]. El compilador infiere automáticamente la longitud del arreglo.

class Example {
    // ...
    int test() {
        int[] a = new int[]{0,1,2,3,4,5,6,7,8,9}; 
        return a[0];
    }
    // ...
}
  • Cree un arreglo de objetos. Nota: Después de crear el arreglo, también debe crear un objeto para cada uno de sus elementos.

class Example {
    public double PI;
    Example(double customPI) {
        this.PI = customPI;
    }
    static int main() {
        Example[] a = new Example[10]; // Create an object array.
        for (int i = 0; i < a.length; ++i) {
            a[i] = new Example(3.1415926); // Initialize each object in the array.
        }
        return 0;
    }
}

Variables miembro de clase

Para obtener más información sobre cómo definir y utilizar variables miembro de clase, consulte Cava classes and objects.

Tipos integrados

Cava proporciona los siguientes tipos integrados. El valor entre paréntesis indica el tamaño de memoria del tipo.

  • boolean (1 byte)

  • byte (1 byte)

  • char (2 bytes)

  • short (2 bytes)

  • int (4 bytes)

  • long (8 bytes)

  • float (4 bytes)

  • double (8 bytes)

Tenga en cuenta que el tipo char utiliza una codificación interna de longitud fija de 2 bytes. Esta codificación es similar al formato de codificación UTF-16 de Java, pero el tipo char en sí no tiene longitud variable.

Conversiones de tipos

Al igual que en la mayoría de los lenguajes, los tipos numéricos integrados pueden convertirse. El compilador inserta código para realizar conversiones entre tipos numéricos cuando corresponde.

Conversión automática de tipos compatibles

Cuando los tipos de origen y destino tienen la siguiente relación:

  • El rango numérico del tipo de destino incluye el rango numérico del tipo de origen. Esto aplica principalmente a los tipos enteros.

  • La conversión del tipo de origen al tipo de destino no provoca una pérdida de precisión numérica. Esto aplica principalmente a los tipos de punto flotante.

Ciertas conversiones, como de short a int o de float a double, son seguras. El compilador inserta automáticamente código para realizar estas conversiones:

float a = 3.14f;
double b = a;

short c = -1;
int d = c;

Cava sigue las mismas reglas de conversión de tipos que otros lenguajes de programación comunes, como Java y C++.

Conversión explícita de tipos

Algunas conversiones de tipos numéricos pueden causar una pérdida de precisión o una discrepancia de rango. En tales casos, el compilador reporta un error. Por ejemplo:

double a = ...;
float b = a; // error, risk of precision loss

El compilador no realiza estas conversiones automáticamente porque generalmente no son seguras. Sin embargo, si comprende los riesgos implicados, puede utilizar una conversión explícita de tipos en su código para evitar un error de compilación.

float a = 3.14f;
int b = (int)a; // The fractional part is discarded. Only the integer part is kept. This truncates the number.

Tipos personalizados

Cava admite la definición de clases y el uso de objetos. Para obtener más información, consulte Cava classes and objects.