|
Indice | Temas Recientes | Quién Está en LÃnea | Lista de Usuarios | Mi Perfil | Búsqueda | Ayuda |
![]() |
mvnForum » Listar todos los foros » Foro: Curso PLJ » Tema: Duda Sesion3 ejercicio 2.2!! |
Total de mensajes en este tema: 2 |
[Eliminar este Tema]
[Mover este Tema] [AÅadir a Mis Favoritos] [AÅadir un aviso a este tema] [Publicar nuevo tema] |
Autor |
|
![]() Novato
|
Bueno nos dice que cambiemos la linea , this.Contador(Contador.VALOR_INICIAL) por new Contador(Contador.VALOR_INICIAL) , y al menos a mi me da que el valor de c1 es 2 el de c2 11 y el de c3 que es el total de los dos es 23, esto no deberia ser asi . es eso lo que debe salir o es algun fallo mio de mi compilador? Por mas que miro el codigo no le veo la logica a esto . |
||
|
![]() Miembro
|
Voy a desvelar la solución. Reconozco que me he pasado, y que es algo complicadilla. Si hacemos la modificación que se pide en el ejercicio nos quedarán los dos siguientes constructores de la clase Contador: public Contador(int valor) {El segundo constructor se ejecuta al crear un objeto Contador sin argumentos, como es el caso de la creación de c3 en el siguiente ejemplo Contador c1 = new Contador(12);La diferencia fundamental de la lÃnea añadida en Contador() es la llamada a "new". Antes no se llamaba a new, se llamaba al otro constructor usando el operador "this". Ahora, sin embargo, hacemos una llamada a "new". Simpre que hay una llamada a new se crea un objeto nuevo. En este caso Contador() está creando un contador nuevo con valor 10 pero no lo está devolviendo, sino que se queda en el "limbo". Por ello el valor de 10 se acumula en el acumulador, pero no se devuelve a c3. El contador que se devuelve a c3 está inicializado a 0. Si comentas la lÃnea del "new": public Contador() {verás que el valor de c3 se inicializa a 0, y ya no se acumula valor en la variable de clase. Un saludo, Domingo. |
||
|
[Versión imprimible] [Publicar nuevo tema] |