|
| 1 | + |
| 2 | +public class reto_5 { |
| 3 | + public static void main(String[] args) { |
| 4 | + // Ejemplo de asignación por valor (datos primitivos) |
| 5 | + int a = 5; |
| 6 | + int b = a; // 'b' obtiene una copia del valor de 'a' |
| 7 | + b = 10; // Cambiamos 'b', pero 'a' permanece igual |
| 8 | + |
| 9 | + System.out.println("Asignación por valor:"); |
| 10 | + System.out.println("a: " + a); // Imprime 5 |
| 11 | + System.out.println("b: " + b); // Imprime 10 |
| 12 | + |
| 13 | + // Ejemplo de asignación por referencia (objetos) |
| 14 | + Persona persona1 = new Persona("Juan"); |
| 15 | + Persona persona2 = persona1; // 'persona2' obtiene la referencia de 'persona1' |
| 16 | + persona2.nombre1 = "Pedro"; // Cambiamos el nombre usando 'persona2' |
| 17 | + |
| 18 | + System.out.println("\nAsignación por referencia:"); |
| 19 | + System.out.println("persona1.nombre: " + persona1.nombre1); // Imprime "Pedro" |
| 20 | + System.out.println("persona2.nombre: " + persona2.nombre1); // Imprime "Pedro" |
| 21 | + |
| 22 | + // Ejemplo de paso de parámetros por valor (datos primitivos) |
| 23 | + int numero = 5; |
| 24 | + cambiarValor(numero); |
| 25 | + System.out.println("\nPaso por valor:"); |
| 26 | + System.out.println("numero: " + numero); // Imprime 5, porque se pasa una copia |
| 27 | + |
| 28 | + // Ejemplo de paso de parámetros por referencia (objetos) |
| 29 | + Persona persona = new Persona("Juan"); |
| 30 | + cambiarNombre(persona); |
| 31 | + System.out.println("\nPaso por referencia:"); |
| 32 | + System.out.println("persona.nombre: " + persona.nombre1); // Imprime "Pedro" |
| 33 | + |
| 34 | + // **********reto**************** |
| 35 | + System.out.println("\nReto:"); |
| 36 | + int numeroOriginal1 = 5; |
| 37 | + int numeroOriginal2 = 10; |
| 38 | + Persona personaOriginal1 = new Persona("Juan"); |
| 39 | + Persona personaOriginal2 = new Persona("andres"); |
| 40 | + |
| 41 | + System.out.println("Nombre 1: " + personaOriginal1.nombre1 + " nombre 2 " + personaOriginal2.nombre1); |
| 42 | + |
| 43 | + System.out.println("Antes de cambiar:"); |
| 44 | + System.out.println("numeroOriginal1: " + numeroOriginal1); |
| 45 | + System.out.println("numeroOriginal2: " + numeroOriginal2); |
| 46 | + System.out.println("personaOriginal1.nombre: " + personaOriginal1.nombre1); |
| 47 | + System.out.println("personaOriginal2.nombre: " + personaOriginal2.nombre1); |
| 48 | + |
| 49 | + System.out.println("Después de cambiar:"); |
| 50 | + |
| 51 | + cambiarValor(numeroOriginal1,numeroOriginal2); |
| 52 | + cambiarNombre(personaOriginal1,personaOriginal2); |
| 53 | + |
| 54 | + |
| 55 | + } |
| 56 | + |
| 57 | + public static void cambiarValor(int numeroOriginal1, int numeroOriginal2 ) { |
| 58 | + int aux = numeroOriginal1; |
| 59 | + numeroOriginal1 = numeroOriginal2; |
| 60 | + numeroOriginal2 = aux; |
| 61 | + |
| 62 | + System.out.println("valores cambiados numero 1: "+ numeroOriginal1 + " numero 2: " +numeroOriginal2 ); |
| 63 | + |
| 64 | + } |
| 65 | + |
| 66 | + public static void cambiarNombre(Persona p1, Persona p2) { |
| 67 | + String aux = p1.nombre1; |
| 68 | + p1.nombre1 = p2.nombre1 ; |
| 69 | + p2.nombre2 = aux; |
| 70 | + |
| 71 | + System.out.println("valores cambiados p1.nombre1: "+ p1.nombre1 + " p2.nombre2: " +p2.nombre2 ); |
| 72 | + } |
| 73 | + |
| 74 | + public static void cambiarValor(int n) { |
| 75 | + n = 10; |
| 76 | + } |
| 77 | + |
| 78 | + public static void cambiarNombre(Persona p1) { |
| 79 | + p1.nombre1 = "Pedro"; |
| 80 | + } |
| 81 | + |
| 82 | + static class Persona { |
| 83 | + String nombre1; |
| 84 | + String nombre2; |
| 85 | + |
| 86 | + Persona(String nombre) { |
| 87 | + this.nombre1 = nombre; |
| 88 | + } |
| 89 | + |
| 90 | + |
| 91 | + |
| 92 | + } |
| 93 | +} |
| 94 | + |
0 commit comments