Título: ¿En qué estoy fallando en herencia java? auxilio por favor Publicado por: miltonprogramador en 15 Diciembre 2016, 15:53 pm ¿En qué estoy fallando en herencia java?
Hola a todos, esta es mi primera vez que pido ayuda en este foro y espero que puedan ayudarme a la brevedad posible porque tengo gran urgencia... Les explico: Estoy desarrollando un sistema servidor con soporte a multiples clientes en java. Hasta ahora apenas vy por el desarrollo del servidor y mi dificultad en cocreto es mantener los datos de logueo (o sessión) en memoria con los cambios que las clases hijas puedan hacer, es decir, especificamente tengo una super clase denominada "Servidor" y una que hereda de ella denominada "Personas". Colocare las secciones del código que mestran la dificultad: Código
Este es el constructor y el metodo del problema de la clase Persona que extiende a Servidor Código
Reitero, leer las variables desde la clase personas si se ve el cambio registrado pero, al regresar a la clase Servidor no... y creo que ya deberia hacerlo puesto que la clase servidor se mantiene activa en todo momento, de tal forma que las variables estan en memoria susceptibles a las modificaciones... Pido, con humildad, su ayuda con urgeeeeeeeeeeeencia... porque de los expertos se aprende a serlo también... gracias de ante mano... Título: Re: ¿En qué estoy fallando en herencia java? auxilio por favor Publicado por: miltonprogramador en 15 Diciembre 2016, 19:29 pm Aca les dejo dos clases que explican mas claramente lo que necesito resolver...
Esta es la clase principal Código
Esta es la sub clase: Código
Título: Re: ¿En qué estoy fallando en herencia java? auxilio por favor Publicado por: ivancea96 en 15 Diciembre 2016, 22:19 pm Código
Código
Heredar implica que la clase hija tendrá los métodos y las variables de la clase padre. Cuando haces Hija1 log = new Hija1();, estás generando una nueva Hija1, y por tanto, una nueva Clase. Clase tiene su campo num, y es el que estás modificando. Si en evz de eso, pones: Código Nótese el System.out.println, que ahora pone log.num. Ahora sí que debería mostrarte 27, porque el num que ha sido modificado es el del objeto que acabas de crear. Título: Re: ¿En qué estoy fallando en herencia java? auxilio por favor Publicado por: miltonprogramador en 15 Diciembre 2016, 23:11 pm Muchas Gracias por responderme ivancea96... entiendo lo que dices y esta muy correcto... ahora mi inquietud es ¿Entonces no puedo modificar las variables de la superClase y dejar esos cambios presentes para las otras clases? Esto lo necesito para mantener las variables de sesión de mi aplicación cargadas en memoria... darme un indicio que como podria lograrlo?
Título: Re: ¿En qué estoy fallando en herencia java? auxilio por favor Publicado por: miltonprogramador en 16 Diciembre 2016, 00:27 am Hola... como solución lo siguiente:
crear una nueva clase llamada Sesión.java para colocar en ella los atributos de sesion... esta no sera heredada por nadie pero si instanciada por la clase principal y pasada por parametros las a las demás clases.... Estos son los códigos: 1.- La clase de sesion.. Código
2.- La clase principal.. Código
3.- y la clase hija que será la que reemplazara el valor del atributo e sesión, mismo que debería matnerse presente durante toda la aplicación Código
Haciendolo de esta manera me mantinene el 37 en la clase principal MI pregunta es: ¿esto es correcto o es un barbarismo? guienme por favor... [/b]Título: Re: ¿En qué estoy fallando en herencia java? auxilio por favor Publicado por: PabloPbl en 16 Diciembre 2016, 02:00 am Citar ¿Entonces no puedo modificar las variables de la superClase y dejar esos cambios presentes para las otras clases? Esto lo necesito para mantener las variables de sesión de mi aplicación cargadas en memoria... darme un indicio que como podria lograrlo? Todas las variables que crees en las clases, son de objeto, eso quiere decir que al hacer un cambio en esa variable, se vera reflejada en el objeto y solo en ese objeto, si quieres que se haga que el cambio afecte a todos los objetos puedes declarar esa variable como estática, de esta manera al hacer un cambio se vera reflejado en todos los objetos que instancies de esa clase.Así se veria una variable estática: Código
Citar Haciendolo de esta manera me mantinene el 37 en la clase principal Es correcto, ya que cuando pasas un objeto por parámetro, java lo pasa por referencia, es decir que esa variable apuntara también al objeto original, de modo que ambas variables apuntarían al mismo objeto en memoria, y si modificas uno, en realidad no modificas el otro, si no que afectara a ambos por que apuntan a lo mismo objeto.MI pregunta es: ¿esto es correcto o es un barbarismo? Espero me entiendas, si no coméntame tu duda. Saludos. Título: Re: ¿En qué estoy fallando en herencia java? auxilio por favor Publicado por: miltonprogramador en 16 Diciembre 2016, 02:30 am uff hermano habia olvidado por completos los atributos estáticos jejeje... creo que eso resuelve mi problema perfectamente.... de todas maneras estoy abierto a nuevas recomendaciones para el manejo de sesiones para aplicaciones de escritorio en java....
Te agradezco infinitamente... Por eso siempre digo "Aprendiendo de los mejores se lega a ser uno de ellos"... Esta es mi primera consulta resuelta en tiempo record... puntito para elhacker.net ;-) |