Título: [DUDA]Constructores this() y super() Publicado por: Feedeex en 8 Marzo 2011, 17:24 pm Buenas, estoy aprendiendo JAVA y llegue a la parte de POO. Entonces, quiero ver si entendí el funcionamiento de estos 2. Tengo el siguiente código:
Código: package prueba; • Importo la librería java.awt.* que contiene la parte gráfica. • Creo una clase publica llamada Punto3D y extiendo sus valores usando los de su superclase Point (de java.awt). Luego acá vienen mis dudas... • ¿super() se utiliza para "decirle" a JAVA que asigne a x,y los valores de su superclase?. No lo entiendo muy bien. • ¿this() se utiliza para decirle a JAVA que asigne a z el valor de su subclase?, es decir, ¿la que se pasa por parámetro llamando a la 'funcion'?. Estuve buscando información, leí y llegué a ese punto pero... no comprendo el total funcionamiento de estos constructores aunque creo que tampoco estoy muy errado, ¿cierto?. Muchas gracias. Título: Re: [DUDA]Constructores this() y super() Publicado por: Devilboy.Devil en 8 Marzo 2011, 20:26 pm Buenas, estoy aprendiendo JAVA y llegue a la parte de POO. Entonces, quiero ver si entendí el funcionamiento de estos 2. Tengo el siguiente código: Código: package prueba; • Importo la librería java.awt.* que contiene la parte gráfica. • Creo una clase publica llamada Punto3D y extiendo sus valores usando los de su superclase Point (de java.awt). Luego acá vienen mis dudas... • ¿super() se utiliza para "decirle" a JAVA que asigne a x,y los valores de su superclase?. No lo entiendo muy bien. • ¿this() se utiliza para decirle a JAVA que asigne a z el valor de su subclase?, es decir, ¿la que se pasa por parámetro llamando a la 'funcion'?. Estuve buscando información, leí y llegué a ese punto pero... no comprendo el total funcionamiento de estos constructores aunque creo que tampoco estoy muy errado, ¿cierto?. Muchas gracias. tienes un constructor: Código:
sino kieres usar this ps asigna otros nombres de la sig forma: Código: string nombre; ahora el uso de super es para poder usar los atributos del constructor de la clase base y poder usarlos en la clase heredada ademas super se usa para ocupar metodos de otras clases o clases heredadas Título: Re: [DUDA]Constructores this() y super() Publicado por: Valkyr en 12 Marzo 2011, 02:07 am Código: public Punto3D(int x, int y, int z) { En este constructor, puesto que la clase que estás creando es una subclase de Point (o clase hija), la primera línea de código debe ser una llamada a algún constructor de la clase padre (o superclase, como quieras llamarlo), así que la linea de super(x, y) se usa para invocar al constructor de la clase Point e inicializar así los atributos x e y puesto que estarán declarados como atributos privados y es la única forma que tienes de inicializarlos. Por otro lado para inicializar el atributo que has declarado z(el cual, a no ser que tengas pensando ya algo que te obligue a declararlo como publico, te recomendaría que lo declarases privado para mantener el principio de ocultación) se hace con la línea this.z = z, la palabra this hace referencia a la estancia actual, es decir, la clase desde la que se llama al metodo (por ejemplo imaginate que creas un objeto de la clase Punto3D llamado P3 y quieres llamar a un método, por ejemplo "move", la llamada se realizaría P3.move(parámetros...) pues en ese caso this hará referencia a P3). En ese constructor en concreto está puesto así puesto que el parámetro se llama igual que el atributo y no podrías inicializar la variable escribiendo z = z puesto que es ambiguo, por eso se utiliza el this en este caso. Por útlimo decirte, cuando quieres llamar a un método de la clase padre (estas llamadas a métodos de la clase padre se realizan, sobre todo, cuando estás redefiniendo un método y quieres ejecutar el código de la clase padre por lo que sea) se realiza mediante super.nombre del metodo. En fin, espero haberte aclarado algo en todo esto. Suerte y si no te aclaras te recomiendo que leas más sobre cosas básicas de Java. Saludos y suerte. |