Punteros en java
1
Punteros
Hay un par de ideas sobre java muy extendidas: java no tiene punteros y en java todo se pasa por referencia. La realidad, es que java se entiende mucho mejor si lopensamos exactamente al revés. En java sólo hay punteros y en java todo se pasa por referencia (por copia).
2
Punteros
Por ejemplo
MiClase a = new MiClase(); // Esto en Java MiClase *a =new MiClase(); // Esto en C++
La única diferencia es la notación con el asterisco. Si pensamos que en java TODO son punteros, no es necesario poner el asterisco para distinguir lo que es puntero delo que no lo es, por lo que simplemente lo han quitado.
3
Punteros
Ahora imaginemos un método que recibe una clase y que le hacemos una llamada // en java... void metodo (MiClase a) { a = newMiClase(); } ... MiClase b = null; metodo (b); Bueno, pues cuando salimos del método b sigue valiendo null, "apuntando a null". Eso quiere decir que a y b son variables disintas, es decir, se hapasado la variable b por valor al método.
4
Punteros
Son objetos que indican la dirección física de memoria en donde reside la información que contienen. 2 operadores en C: * : valorapuntado & : dirección de memoria
5
Punteros
Ejemplo de uso de operadores de punteros. Se declaran dos variable enteras “i” y “j” y un puntero a entero “p” int i, j, p; Suponemos que “i” y “j”se ubican en las direcciones 13B6 y 5FC4, respectivamente.
6
Punteros
¿Cómo podemos declarar un puntero que apunte al número 3?. int a; a=3; Mal !!!!! ¿Y por qué?.
7
Punteros
Soluciónint a; int b=3; a=b;
8
Punteros
Reglas para trabajar con punteros
Por cada sentencia de reserva de memoria tiene que haber una sentencia de liberación. Para asignar un puntero a otro, elpuntero asignado no debe tener asignada memoria previamente. Para asignar un valor a la memoria referenciada por un puntero es necesario que se haya reservado memoria previamente. Cuando la memoria...
Regístrate para leer el documento completo.