- Introducción
Existen dos tipos de datos en Java, los tipos primitivos (int, float, char,...) y los tipos referencia con los que accedemos a los objetos.
La declaración y ámbito de las variables es similar a las de C/C++.
Debido a las mejoras introducidas con Java ciertos operadores han desaparecido dando lugar a otros.
De igual modo, uso de arrays de objeto es distinto.
- Tipos de datos primitivos
- Tipos de datos referencia
- Declaración de variables. Convenciones
- Ámbito de las variables
- Arrays
- Unidemensionales:
- Multidimensionales:
- Cadenas de caracteres
| Tipo | Definición |
| boolean | true o false |
| char | Carácter Unicode de 16 bits |
| byte | Entero en complemento a dos con signo de 8 bits |
| short | Entero en complemento a dos con signo de 16 bits |
| int | Entero en complemento a dos con signo de 32 bits |
| long | Entero en complemento a dos con signo de 64 bits |
| float | Real en punto flotante según la norma IEEE 754 de 32 bits |
| double | Real en punto flotante según la norma IEEE 754 de 64 bits |
Veamos este apartado con un ejemplo:
Punto unPunto = new Punto(); // "unPunto" apunta/referencia a un objeto de tipo "Punto"
unPunto.print(); //Imprime por pantalla el objeto "Punto" desde la referencia "unPunto"
Punto otroPunto = unPunto; //"otroPunto" apunta al mismo objeto que "unPunto", es decir, apunta al objeto "Punto"
otroPunto.setX(1.0f); //Se modifica el objeto "Punto" a partir de su referencia "otroPunto". Como "unPunto" también apunta al mismo objeto si accedemos a "unPunto" obtendremos el mismo resultado.
otroPunto.setY(2.0f); //Se modifica el objeto "Punto" a partir de su referencia "otroPunto". Como "unPunto" también apunta al mismo objeto si accedemos a "unPunto" obtendremos el mismo resultado.
unPunto.print(); //Imprimimos por pantalla "unPunto" para comprobar que efectivamente está apuntando al mis objeto que "otroPunto".
Ejemplo del recolector de basura que utiliza Java. De este modo no tenemos que preocuparnos de eliminar los objetos que pierdan la referencia, internamente Java lo hará por nosotros:
Ejemplo 1:
Punto unPunto = new Punto(1.0f, 2.0f);
Punto otroPunto = new Punto(1.0f, -1.0f);
unPunto = new Punto(2.0, 2.0f);
// El punto (1.0f, 2.0f) se pierde
otroPunto = null;
// El punto (1.0f, -1.0f) se pierde
Ejemplo 2:
Punto unPunto = new Punto(1.0f, 2.0f);
Punto otroPunto = new Punto(1.0f, -1.0f);
unPunto = new Punto(2.0, 2.0f);
// El punto (1.0f, 2.0f) se pierde
otroPunto = null;
// El punto (1.0f, -1.0f) se pierde Todos los "puntos" perdidos se encargará el recolector de basura de eliminarlos.
Bien
int entero = 0;
Punto punto = new Punto();
Mal
float 3reales;
Punto índigo;
El ámbito al igual que en C/C++ va de dentro a afuera, es decir, se puede acceder a variables desde bloques internos a otros externos, pero no al revés.
Operadores. Precedencia
El conjunto de operadores es similar a C++.
Los () cambian la precedencia.
No hay operadores sobre punteros:
Dirección / Referencia.
Contenido.
Sizeof().
Asignación: =
Aritméticos:
Unarios: +, -, ++, --
Binarios: +, -, *, / %
Ternarios: ?, ejemplo: a = (x
Abreviaturas: +=, -=, *=, /=, %=
Relacionales: ==, !=, <, <=, >, >=
Lógicos: !, &&, ||, ^, & |
Conversión: ().
int arrayDeEnteros[] = null;
// Declara un array de enteros
Punto arrayDePuntos[] = null;
// Declara un array de referencias a Puntos
arrayDeEnteros = new int[100];
// Crea el array con espacio para 100 enteros
arrayDePuntos = new Punto[100];
/* Crea el array con espacio para
100 referencias a Punto */
for(int i = 0; i <>
arrayDePuntos[i] = new Punto();
El atributo length de un array monodimensional,nos devuelve su tamaño:
int array[] = new int[10];
System.out.println(“Longitud del array:” +
array.length);
// Muestra Longitud del array: 10
// Declaramos una matriz
Punto matriz[][] = new Punto[3][3];
// Declaramos e iniciamos una fila
Punto fila[] = {new Punto(), new Punto(1.0f, 1.0f),
new Punto(2.0f, 2.0f)};
matriz[0] = fila[];
// matriz[0] y fila hacen referencia al
// mismo array
Las cadenas de caracteres se pueden manejar como en C++. Pero es más cómodo utilizar la clase especializada String.
String frase = "Esta cadena es una frase ";
String larga =frase + "que se puede convertir en una frase larga.";
System.out.println(larga); //Para sacar por pantalla
No hay comentarios:
Publicar un comentario