En función de los contenidos de la Semana 7, responda lo siguiente: Discuta qué ventajas y desventajas tiene el paso de parámetros por valor o por referencia. Dé ejemplos en cada intervención. Tenga especial cuidado en no repetir los ejemplos de sus compañeros(as).Fundamente su respuesta. Buenos noches, Respondiendo a la interrogante puedo decir Beneficios de pasar por valor
Si estamos construyendo aplicaciones multi-hilos, entonces no tenemos que preocuparnos de que los objetos sean modificados por otros hilos. Desventajas, permite evitar inadvertidamente la destrucción de las variables pasadas como parámetros. Si uno quiere advertir de la destrucción accidental de los parámetros pasados por variable, El compilador prohibirá entonces cualquier modificación de la variable en la función llamada. Ventajas de pasar por referencia:
No hay copia del argumento hecho, por lo tanto, es rápido. Para evitar cambios involuntarios, podemos incluso hacer que pase por referencia constante. Podemos devolver múltiples valores de una función.
Pasar parámetros por referencia constante para funciones con requisitos de solo lectura ayuda a mantener la legibilidad, asegurando un fuerte contrato de tiempo de compilación y permitiendo la flexibilidad de llamar a una función con un valor constante de tiempo de compilación. Desventajas (todo con respecto a los parámetros pasados por referencia)
Legibilidad. Una persona que lee el código no tiene forma de saber que el valor puede modificarse en la función. Pasar por referencia hace que la función no sea puramente teórica y en muchos casos prácticamente. Las funciones puras tienen los beneficios de ser altamente paralelizadas, más comprobables y menos propensas a errores en general. La garantía de por vida es un gran problema con las referencias (y también con los indicadores). Esto se vuelve especialmente peligroso cuando se trata de programas lambdas y multiproceso.
Saludos, Patricio Astorga Vega
Buenos noches, Parámetros por valor Ejemplo 1
public void xxx ( int var1 , int var2 ) { int temp = var1 ; var1 = var2 ; var2 = temperatura ; } Cuando xxx()vuelve, las variables pasadas como argumentos aún mantendrán sus valores originales. El método también fallará si cambiamos el tipo de argumentos de inta Object, ya que Java también pasa referencias de o bjetos por valor. Ejemplo 2
Se utiliza cuándo se requiere pasar el valor de una variable a una función y que está realize alguna operación sobre ese Valor, la función o método crea una Variable Local y trabaja sobre ella. int a=5; metodo(a): void metodo(int c) { System.out.println(c); } La variable c, es una variable local y que recibe una copia del valor de la variable a, es decir se pasa el parámetro por valor. Pasos por referencia
El paso por referencia en vez de mandar el valor de la variable, se manda la dirección de memoria en la que se encuentra almacenada, para de esta manera modificar el contenido de la variable. Sin embargo este tipo de paso de parámetros en Java no existe pero si lo quisiéramos hacer en C++ sería algo así: include using namespace std;
void funcion(int &a) { a = 10; } int main() { int var = 5;
funcion(&var); cout <<> } El resultado de la ejecución sería, 10 ya que la variable 10 se pasa por referencia y la función modifica su valor. Saludos, Patricio Astorga Vega Conclusión
Aunque los principios fundamentales, como los esquemas de enlace de datos y los esquemas de paso de datos, pueden parecer abstractos en el ámbito de la programación diaria, estos conceptos son esenciales para evitar errores sutiles. A diferencia de otros lenguajes de programación (como C ++), Java simplifica el enlace de datos y el esquema de aprobación en una sola regla: los datos siempre se pasan por valor. Aunque esta regla puede ser una restricción estricta, su simplicidad y la comprensión de cómo aplicar esta simplicidad, puede ser un activo importante al realizar una gran cantidad de tareas diarias
Saludos, Patricio Astorga
https://www.quora.com/What-are-the-pros-and-cons-of-passing-by-reference https://fabiantapia.wordpress.com/2010/12/11/parametros-por-referencia-vs-por-valor/
Foro 2
En función de los contenidos de la Semana 7, responda lo siguiente: Discuta acerca de las diferencias en retornar un valor en el nombre de un método o en un parámetro..
Buenos días, Los métodos con valor de retorno son módulos de programa que pueden recibir datos de entrada por medio de variables locales (parámetros) y posteriormente retorna un resultado al punto donde es llamado. Este tipo de métodos se utiliza para operar cualquier tipo de proceso que produzca un resultado. Los métodos con valor de retorno se clasifican en dos tipos:
Métodos con valor de retorno sin parámetros.
Métodos con valor de retorno con parámetros.
Están son sus diferencia: Los métodos con valor de retorno sin parámetros son aquellos donde este tipo de métodos no reciben datos de entrada; pero de igual forma retornan un resultado al punto donde son llamados. Y los métodos con valor de retorno con parámetros, son aquellos métodos que reciben datos de entrada por medio de parámetros y retornan un resultado al punto de su llamado. Ejemplo Métodos con valor de retorno sin parámetros
Su definición es de la siguiente manera: tipo nombreMetodo(){ Declaracion de variables locales Cuerpo del método return valor; } Donde: valor: Es el valor que es retornado por el método. tipo: Es el tipo del valor de retorno. Invocación (llamado): variable = nombreMetodo(); Donde: variable: Es la variable que recibe el valor retornado por el método. Ejemplo Métodos con valor de retorno con parámetros
tipo nombreMetodo(tipo1 p, tipo2 q, tipo3 r, ...){
Declaración de variables locales Cuerpo del método return valor; }
Donde: tipo: Es el tipo de valor de retorno. p, q, r, ... : son los nombres de los parámetros. tipo1, tipo2, tipo3, ... : son los tipos de datos de los parámetros. valor: es el valor de retorno. Saludos, Patricio Astorga http://inprojava.blogspot.cl/2009/10/metodos-con-valor-de-retorno.html
Buenas tardes, Saludos, Patricio Astorga