1. Pruebas de Escritorio con Objetos INTEGRANTES: Álvarez González Álvaro Ángel Avilés Mónica Gómez López Rodolfo Guzmán Zanabria Ana Laura Pérez Melo Alan Suazo Reza David
2. publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } PRUEBA DE ESCRITORIO
3. 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } Área de Clases W 1 Explicación 1. Se crea la clase Wen el área de clases
4. 1 stack publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } Área de Clases 2 W.main 2 W 1 Explicación 1. Se crea la clase Wen el área de clases 2.Se crea el registro de activación de main.
5. 1 stack publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } Área de Clases 2 W n W.main 2 W 1 3 3 Explicación 1. Se crea la clase Wen el área de clases 2.Se crea el registro de activación de main. 3.Se crea la variable de referencia tipo W.
6. 1 stack publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } Área de Clases 2 W n W.main 2 W 1 3 3 4 Explicación 1. Se crea la clase Wen el área de clases 2.Se crea el registro de activación de main. 3.Se crea la variable de referencia tipo W. 4.Se resuelven las expresiones que se pasan como parámetros al constructor.
7. Área de Clases 1 Heap publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } W 1 2 122:W 5 3 4 5 stack 2 W n W.main 3 Explicación 5.La clase Winicia la construcción , creando un objeto, se le asigna el identificador 122 y se le graba su fabricante, que es W.
8. Área de Clases 1 Heap publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } W 1 2 122:W 5 3 4 int k: 5 6 0 stack 2 W n W.main 3 Explicación 5.La clase Winicia la construcción, creando un objeto, se le asigna el identificador 122 y se le graba su fabricante, que es W. 6.Se añade la variable K al objeto 122 con el valor 0.
9. Área de Clases 1 Heap publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } W 1 2 122:W 5 3 4 int k: String p: 5 6 0 null 7 stack 7 2 W n W.main 3 Explicación 5.La clase Winicia la construcción, creando un objeto, se le asigna el identificador 122 y se le graba su fabricante, que es W. 6.Se añade la variable K al objeto 122 con el valor 0. 7.Se añade la variable p al objeto 122 con el valor null.
10. Área de Clases 1 Heap publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } W 1 2 122:W 5 3 4 int k: String p: double n: 5 6 0 null 7 stack 8 0.0 7 2 W n W.main 3 Explicación 8.Se añade la variable n al objeto 122 con el valor 0.0 8
11. Área de Clases 1 Heap publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } W 1 2 122:W 5 3 4 int k: String p: double n: 6 0 5 9 null 7 stack 8 0.0 7 2 W n W.main 3 salí 9 Explicación 8.Se añade la variable n al objeto 122 con el valor 0.0 9.Se invoca el constructor. Expresiones 8 W(3, 8.1, "a3"); 9
12. Área de Clases 1 Heap publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } W 1 2 122:W 5 3 4 int k: String p: double n: 6 0 5 9 null 7 stack 8 0.0 7 2 W n W.main 3 10 salí 9 10 W int a: 3 10 String h: “a3” 10 double m: 10 8.1 Expresiones 8 W(3, 8.1, "a3"); 9 W(int a, double m, String h) 10 Explicación 10.Se crea el registro de activación del constructor y se realiza el paso de parámetros.
13. Heap Área de Clases 1 122:W 5 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } W 1 int k: String p: double n: 6 0 2 7 null 3 4 8 0.0 5 9 stack salida 2 W n W.main 7 8.1 a3 11 3 salí 9 10 11 10 w int a: 10 3 String h: 10 “a3” Expresiones double m: 10 8.1 W(3, 8.1, "a3"); 9 W(int a, double m, String h) 10 8 + = 11 8.1 “a3” 8.1 a3 Explicación 11.Se realiza la expresión y se muestra (m + h)
14. Heap Área de Clases 122:W 1 5 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } W 1 int k: String p: double n: 6 0 2 null 7 3 4 0.0 10.1 8 stack 5 9 12 2 W n W.main salida 3 7 8.1 a3 11 salí 9 10 10 w 11 int a: 3 10 12 Expresiones String h: “a3” 10 double m: W(3, 8.1, "a3"); 8.1 10 9 W(int a, double m, String h) 10 + = 11 8.1 “a3” 8.1 a3 8 + = 8.1 2 10.1 12 Explicación 12.Se cambia el valor de n, asignándole m+2. La variable mse localiza en el stack.
15. Heap Área de Clases 1 122:W 5 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } W 1 13 6 int k: String p: double n: 0 -2 2 7 null 3 4 8 0.0 10.1 stack 5 9 12 2 W n W.main salida 3 7 8.1 a3 11 salí 9 10 10 w 11 int a: 3 10 12 Expresiones String h: “a3” 10 13 double m: W(3, 8.1, "a3"); 8.1 10 9 W(int a, double m, String h) 10 + = 11 8.1 “a3” 8.1 a3 8 + = 8.1 2 10.1 12 - = 13 3 5 -2 Explicación 13.Se cambia el valor de k, asignándole a-5. La variable a se localiza en el stack.
16. Heap Área de Clases 1 122:W 5 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } W 1 13 6 int k: String p: double n: 0 -2 2 7 null a33 3 4 14 8 0.0 10.1 stack 5 9 12 2 W n W.main salida 3 7 8.1 a3 11 salí 9 10 10 w 11 int a: 3 10 12 Expresiones String h: “a3” 10 13 double m: W(3, 8.1, "a3"); 8.1 10 9 14 W(int a, double m, String h) 10 + = 11 8.1 “a3” 8.1 a3 8 + = 8.1 2 10.1 12 - = 13 3 5 -2 + = 14 “a3” “3” a33 Explicación 14.Se cambia el valor de p, asignándole h+”3”. La variable h se localiza en el stack.
17. Heap Área de Clases 1 122:W 5 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } W 1 13 6 int k: String p: double n: 0 -2 2 7 null a33 3 4 14 8 0.0 10.1 stack 5 9 12 2 W n W.main salida 3 7 8.1 a3 11 salí regreso 9 15 10 10 w 11 int a: 3 10 12 Expresiones String h: 15 “a3” 10 13 double m: W(3, 8.1, "a3"); 8.1 10 9 14 15 W(int a, double m, String h) 10 + = 11 8.1 “a3” 8.1 a3 8 + = 8.1 2 10.1 12 - = 13 3 5 -2 Explicación + = 14 “a3” “3” a33 15.-Se termina la ejecución del constructor, se elimina su registro de activación y se regresa el al registro de activación de main
18. Área de Clases 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 W 2 3 4 stack 5 9 16 2 W n W.main 3 7 9 salí regreso 15 W x 16 10 11 12 13 Explicación 14 15 16.Se crea la variable de referencia tipo W. 8
19. Área de Clases 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 W 2 3 4 stack 5 9 16 17 2 W n W.main 3 7 9 salí regreso 15 W x 16 10 11 12 13 Explicación 14 15 16.Se crea la variable de referencia tipo W. 17.Se resuelven las expresiones que se pasan como parámetros al constructor. 8
20. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 2 3 4 stack 5 9 16 17 2 W n W.main 18 3 7 9 salí regreso 15 W x 16 10 11 12 13 Explicación 14 15 16.Se crea la variable de referencia tipo W. 17.Se resuelven las expresiones que se pasan como parámetros al constructor. 8 18.La clase W inicia la construcción , creando un objeto, se le asigna el identificador 150 y se le graba su fabricante, que es W.
21. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 int k: 2 19 0 String p: 20 null 3 4 stack 5 9 double n: 0.0 21 16 17 2 W n W.main 18 3 7 9 salí regreso 15 W x 16 10 11 12 13 Explicación 14 15 19.Se añade la variable K al objeto 150 con el valor 0. 20.Se añade la variable p al objeto 150 con el valor null. 8 21.Se añade la variable n al objeto 150 con el valor 0.0
22. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 int k: 2 19 0 String p: 20 null 3 4 stack 5 9 double n: 0.0 21 16 17 2 W n W.main 22 18 3 7 9 salí regreso 15 W x 16 Expresiones 10 salí 22 11 W(2, 20.0, “9"); 22 12 13 14 15 Explicación 22.Se invoca el constructor 8
23. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 int k: 2 19 0 String p: 20 null 3 4 stack 5 9 double n: 0.0 21 16 17 2 W n W.main 22 18 3 7 9 salí regreso 15 W x 16 Expresiones 10 salí 23 22 11 W(2, 20.0, “9"); 22 12 23 W 13 int a: W(int a, double m, String h) 2 23 23 14 String h: “9” 23 15 double m: 20.0 23 Explicación 8 22.Se invoca el constructor 23.Se crea el registro de activación del constructor y se realiza el paso de parámetros
24. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 int k: 2 19 0 String p: 20 null 3 4 stack 5 9 double n: 0.0 21 16 17 2 W n W.main 22 18 3 7 9 salí regreso 15 W x 16 Expresiones 10 salí 23 22 11 W(2, 20.0, “9"); 22 12 23 W 13 int a: W(int a, double m, String h) 2 23 23 14 String h: “9” 23 20.0 +”9”=20.09 24 15 double m: 20.0 23 Salida Explicación 8 24 24.Se realiza la expresión y se muestra (m + h) 8.1 a3 11 20.09
25. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 int k: 2 19 0 String p: 20 null 3 4 stack 5 9 double n: 0.0 21 22.0 16 17 25 2 W n W.main 22 18 3 7 9 salí regreso 15 W x 16 Expresiones 10 salí 23 22 11 W(2, 20.0, “9"); 22 12 25 23 W 13 int a: W(int a, double m, String h) 2 23 23 14 String h: “9” 23 20.0 +”9”=20.09 24 15 double m: 20.0 23 25 n=20.0+2=22.0 Salida 8 24 8.1 a3 11 20.09 Explicación 25.Se cambia el valor de n, asignándole m+2. La variable m se localiza en el stack.
26. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 26 int k: 2 19 0 -3 String p: 20 null 3 4 stack 5 9 double n: 0.0 21 22.0 16 17 25 2 W n W.main 22 18 3 7 9 salí regreso 15 W x 16 Expresiones 10 salí 23 22 11 W(2, 20.0, “9"); 22 12 25 23 W 13 int a: W(int a, double m, String h) 26 2 23 23 14 String h: “9” 23 20.0 +”9”=20.09 24 15 double m: 20.0 23 25 n=20.0+2=22.0 K=2-5=-3 26 Salida 8 24 8.1 a3 11 20.09 Explicación 26.Se cambia el valor de k, asignándole a-5. La variable a se localiza en el stack.
27. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 26 int k: 2 19 0 -3 27 String p: 20 null “93” 3 4 stack 5 9 double n: 0.0 21 22.0 16 17 25 2 W n W.main 22 18 3 7 9 salí regreso 15 W x 16 Expresiones 10 salí 23 22 11 W(2, 20.0, “9"); 22 12 25 23 W 13 int a: W(int a, double m, String h) 2 23 23 14 String h: “9” 23 20.0 +”9”=20.09 24 15 double m: 20.0 23 25 n=20.0+2=22.0 K=2-5=-3 26 Salida “9”+”3”=“93” 8 24 27 8.1 a3 11 20.09 Explicación 27.Se cambia el valor de p, asignándole h+”3”. La variable h se localiza en el stack.
28. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } double g(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 26 int k: 2 19 0 -3 27 String p: 20 null “93” 3 4 stack 5 9 double n: 0.0 21 22.0 16 17 25 2 W n W.main 22 18 3 7 9 salí regreso 15 W x 16 Expresiones 10 salí 23 regreso 22 28 11 W(2, 20.0, “9"); 22 12 25 23 W 13 int a: W(int a, double m, String h) 2 23 23 14 String h: “9” 23 28 20.0 +”9”=20.09 24 15 28 double m: 20.0 23 25 n=20.0+2=22.0 K=2-5=-3 26 Salida “9”+”3”=“93” 8 24 27 8.1 a3 11 20.09 Explicación 28.Se termina la ejecución del constructor, se elimina su registro de activación y se regresa el valor de this, que es 150. Se regresa al registro de activación de main.
29. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } doubleg(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 26 int k: 2 19 0 -3 27 String p: 20 null “93” 3 4 stack 5 9 double n: 0.0 21 22.0 16 17 25 2 W n W.main 22 18 3 7 29 9 salí regreso 15 W x 10 16 23 11 salí regreso 22 28 12 25 x.g 13 salí 14 29 15 28 8 Explicación 29.Se invoca el método x.g
30. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } doubleg(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 26 int k: 2 19 0 -3 27 String p: 20 null “93” 3 4 stack 5 9 double n: 0.0 21 22.0 16 17 25 2 W n W.main 22 18 7 29 3 9 salí regreso 15 10 W x 16 23 11 salí regreso 22 28 12 25 x.g 13 30 int a: -2 salí 14 29 15 28 30 x.g 30 8 Explicación 30.Se crea el registro de activación de x.g y se realiza el paso de parámetro
31. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } doubleg(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 26 int k: 2 19 0 -3 27 String p: 20 null “93” 3 4 5 9 stack double n: 0.0 21 22.0 16 17 25 W.main 2 W n 22 18 7 3 29 9 salí regreso 15 W x 10 16 regreso salí 23 22 28 11 12 25 30 13 x.g 30 int a: -2 14 salí 29 15 28 Expresiones 30 x.g “93”+-2=93-2 31 8 Explicación 31.Se realiza la expresión (p + a);
32. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } doubleg(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 26 int k: 2 19 0 -3 27 String p: 20 null “93” 3 4 5 9 stack double n: 0.0 21 22.0 16 17 25 2 W n W.main 22 18 7 3 29 9 salí regreso 15 W x 10 16 23 salí regreso 11 22 28 x.g 12 25 x.g salí 13 29 int a: -2 14 30 15 28 Expresiones 30 30 32 “93”+-2=93-2 Salida 31 8 93-2 32 Explicación 32. Se muestra el resultado de la expresión p + a
33. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } doubleg(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 26 int k: 2 19 0 -3 27 String p: 20 null “93” 3 4 5 9 stack double n: 0.0 21 22.0 16 17 25 2 W n W.main 22 18 7 3 29 9 salí regreso 15 W x 10 16 23 salí regreso 11 22 28 x.g 12 25 -2+22.0+-3=-68 33 salí 13 29 14 15 28 Expresiones 30 x.g 30 32 30 int a: -2 “93”+-2=93-2 Salida 33 31 8 93-2 32 Explicación 33. Se evalúa la expresión a + n * k
34. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } doubleg(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 26 int k: 2 19 0 -3 27 String p: 20 null “93” 3 4 5 9 stack double n: 0.0 21 22.0 16 17 25 2 W n W.main 22 18 7 3 29 9 salí regreso 15 W x 10 16 23 salí regreso 11 22 28 x.g 12 25 -2+22.0+-3=-68 33 Regreso Con -68 salí 34 13 29 14 15 28 Expresiones x.g 30 30 32 30 int a: -2 “93”+-2=93-2 34 Salida 33 31 34 8 34 93-2 32 Explicación 34. Se devuelve el valor obtenido en el punto anterior y se destruye el registro de activación de “x.g”.
35. Área de Clases Heap 1 publicclass W { int k; publicstaticvoidmain() { W n = new W(3, 8.1, "a3"); W x = new W(2, 20.0, "9"); System.out.print(x.g(n.k)); } String p; W(int a, double m, String h) { System.out.print(m + h); n = m + 2; k = a - 5; p = h + "3"; } doubleg(int a) { System.out.print(p + a); return a + n * k; } double n; } 1 150:W W 18 26 int k: 2 19 0 -3 27 String p: 20 null “93” 3 4 5 9 stack double n: 0.0 21 22.0 16 17 25 2 W n W.main 22 18 7 3 29 35 9 salí regreso 15 35 W x 10 16 23 salí regreso 11 22 28 x.g 12 25 -2+22.0+-3=-68 33 Regreso Con -68 salí 34 13 29 14 15 28 Expresiones x.g 30 30 32 30 int a: -2 “93”+-2=93-2 34 Salida 33 31 34 8 34 93-2 32 35 Explicación 35.Termina el método “main”. Se elimina el registro de activación y finaliza la ejecución del programa.