web 2.0

domingo, 29 de enero de 2012

I. Paso de parámetros en Java: Por Valor

Después de varios meses de no escribir en el Blog, he decidido responder a una serie de cuestionamientos sobre el tema de “Paso de parámetros en Java” donde desafortunadamente existe mucha confusión al respecto y por ende he recibido comentarios en donde dicen que yo no tengo idea de lo que hablo. Pero bueno, aclaremos ahora todo esto y veamos en donde esta el meollo del asunto o el asunto del meollo.

Ocupare material elaborado por mi en un curso que impartí sobre Java. Barreré como a la hojarasca!

 

Introducción

image

Variables primitivas.

Básicamente consisten en variables de alguno de los tipos primitivos.

Variables de Referencia.

También se les llama variables de objeto. Estas variables no son el objeto mismo, son solo una referencia al objeto. Imaginemos tener una variable de tipo Date.

private Date fechaLimite;

Al crear el objeto con el operador new, sucede algo como lo mostrado en la imagen de abajo.

image

fechaLimite no es el objeto en si, más bien es una referencia al objeto Date.

En Java, el valor de toda variable de objeto es una referencia de un objeto que reside en algún otro lugar. El valor proporcionado por el operador new también es una referencia.

La expresión new Date() crea un objeto del tipo Date, y su valor es una referencia del objeto recién creado. Esa referencia se almacena entonces en la variable fechaLimite. Las referencias de objeto son equivalentes a los punteros de C++, sin embargo, en Java no es posible manejar punteros y la administración de memoria es una tarea del Garbage Collector.

 

Existe Existe en la terminología de las Ciencias Computacionales para el paso de parámetros a los métodos.


Paso por valor o copia. Significa que el método obtiene solamente el valor (una
copia) que proporciona quien hace la llamada.


● Paso por Referencia. Significa que el método recibe la ubicación de la variable
que proporciona quien hace la llamada.

 

Ahora si, una vez aclarado lo anterior, podemos comenzar a desmentir a esa falsa creencia que tienen algunos de mis lectores del blog y muchísima más gente conocedora de C++ pero no de Java y piensan que todo es igual en Java.

0 comentarios:

Publicar un comentario