Referencias.

Es una etiqueta en el mundo de los objetos y permite
accesar las propiedades y metodos de un objeto creado.

Una referencia puede hacerse sobre un objeto de un
tipo no escalar o clase

Una referencia es una variable (tambien puede ser
un atributo de una clase)

Una referencia puede tener dos valores.
Cuando se declara, de inicio tiene valor nulo o vacia.
Cuando se le asigna un objeto, tiene la etiqueta del
objeto.

Una referencia se declara como

TipoOClase variableReferencia;

esto se lee como una variable de tipo referencia que
manipula un objeto de clase TipoOClase.

Ejemplo
String msg;

En Java, el valor nulo de una referencia se representa como
null. En el ejemplo anterior, msg tiene valor null

Para asignar un valor a una referencia, se debe
asignar un objeto, ya sea al momento de crearlo o
como parte de una invocacion a un metodo de otro objeto.

Ejemplo
msg = new String("hola mundo");

Ejemplo2 :
Punto p1;//p1 es una variable de tipo referencia 
	//que contendra una etiqueta a un objeto de clase
	//Punto, en este momento su valor es null
p1 = new Punto(3,4);//p1 adquiere el valor de la etiqueta
		//asignada en el mundo de los objetos

Es incorrecto invocar un metodo o accesar una propiedad usando
una referencia con valor null

Via una referencia es posible manipular al objeto al cual se
refiere. Las operaciones de manipulación consisten en accesar
un atributo o invocar un método

Esto se realiza como
referencia.atributo

o
referencia.metodo()

Una referencia puede pasarse como un parametro de una clase O
recibirse como valor de retorno de un método

Cuando una referencia se recibe en un parametro, se pasa por
valor. (a diferencia de los tipos escalares, que se pasan por
copia de valores)

Un atributo de un objeto puede ser una referencia.

Cuando se crea un objeto via la operación new, se crea un objeto de
manera dinámica. Esto implica que se pide espacio para el objeto bajo
demanda y es necesario tener alguna manera de limpiar dicho espacio cuando
el objeto ya no se usa

En algunos lenguajes (C++) es necesario definir un destructor y 
aplicar una operacion de destruccion. En otros lenguajes existe otra
tecnica, denominada "recoleccion de basura" (garbage collector) que permite
tener un flujo o "thread" encargado de detectar los objetos no utilizados
y desasignar el espacio que ocupaban.






























































Tarea:

Escribir en C, el programa PuntoMain.

En lugar de escribir la clase Punto, escribir
un modulo en C que se denomine punto.c e
incluir las rutinas para manipular un punto






















































    Source: geocities.com/gusdelact/cib3122001

               ( geocities.com/gusdelact)