Título: pasar un objeto a un objeto, es posible?? Publicado por: kikian94 en 11 Marzo 2014, 11:52 am hola, estoy haciendo un ejercicio de la uni en el que hay que dibujar una serie de rectangulos, tengo tres clases, vector, muro y el main:
vector: Código
muro: Código
main: Código
el caso es que necesito crear 5 muros al inicio del programa pero me dice eclipse que no le puedo pasar esos parametros, que en el constructor no estan declarados, pero si el constructor de muro tiene como parametros 2 vectores y estos a su vez tienen cada uno 2 valores por que no puedo meter 4 valores al constructor? como se le pueden pasar correctamente? Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: egyware en 11 Marzo 2014, 13:13 pm Como lo mencionas, los constructores no son Transitivos. No puedes asumir eso.
Generalmente uno lo que hace en esos casos es sobrecargar el constructor, como por ejemplo: Código
Acá aparte que te hecho tu tarea (contra de las reglas) tienes que aprender dos cosas
Saludos Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: kikian94 en 11 Marzo 2014, 15:32 pm pero en la clase muro tengo que hacerla con el constructor que me dan es decir, que se le pasen 2 parametros, por que en vez de 2 variables un vector puede tener 3 y el constructor tendria que tener 6 parametros
Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: egyware en 11 Marzo 2014, 15:41 pm Mi respuesta a tu pregunta ya está respondida.
Fíjate bien el el "this", yo lo que hice fue hacer un constructor más cómodo. Sin embargo perfectamente podías hacer esto. Código Citar Observa los ejemplos, modificalos, aprende de ellos. Podrías haber experimentado y sacar conclusiones por ti mismo. Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: Mitsu en 11 Marzo 2014, 16:22 pm que se le pasen 2 parametros, por que en vez de 2 variables un vector puede tener 3 y el constructor tendria que tener 6 parametros Si no tienes en mente un número de valores fijo que puede contener tus Vector, mejor primero guarda los valores que desees en una colección y luego se la pasas al Vector en el constructor de Muro. No te hagas problemas, se trata de pensar. Código
Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: kikian94 en 11 Marzo 2014, 18:41 pm lo probe y perfecto amigo, muchas gracias, que rapidez a si es genial :)
Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: kikian94 en 12 Marzo 2014, 13:28 pm quiero utilizar este metodo StdDraw.filledRectangle(double,double,double,double) y tengo que pasarle los 4 parametros definidos previamente en cada objeto muro, como lo hago? asi esta mal, ya que paso la referencia StdDraw.filledRectangle(muro);
Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: egyware en 12 Marzo 2014, 13:45 pm quiero utilizar este metodo StdDraw.filledRectangle(double,double,double,double) y tengo que pasarle los 4 parametros definidos previamente en cada objeto muro, como lo hago? asi esta mal, ya que paso la referencia StdDraw.filledRectangle(muro); Claro que está mal, debes acceder a las variables que contiene el muro. Se nota que tienes que estudiar más, estoy viendo que estás carente de varios conceptos. Pero es normal no todos nacimos sabiendo y a mi tomó mucho tiempo aprender bien java. Para empezar un objeto en java es la representación de un objeto real o virtual (una silla o el conocimiento de alguien). En tu caso estás representando un muro de solo 2D. El objeto muro tiene propiedades que representan las propiedades físicas del muro, como por ejemplo posición y dimensiones. Usaré este código para representar lo que digo. Código
Entonces como el objeto muro representa un muro, podemos aprovecharnos de esas propiedades, para obtener otras cosas como por ejemplo el área, cuanta pintura necesitar, colisiones, etc... Si deseamos hacer una representación visual (y utilizando el API de dibujado de java) debería hacer algo así. Código Si observas y viendo de una cierta manera Graphics y Muro no se conocen, sin embargo para poder lograr pintar una representación visual del muro tuve que pasarle las propiedades del Muro a Graphics para poder el se encargue de pintar finalmente. Espero que me hayas entendido y puedas aplicar lo que te intenté enseñar aquí para tu tarea, saludos. http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html#fillRect(int, int, int, int) (http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html#fillRect(int, int, int, int)) Citar “Regala un pescado a un hombre y le darás alimento para un día, enséñale a pescar y lo alimentarás para el resto de su vida.” Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: kikian94 en 12 Marzo 2014, 15:11 pm ya, si ya se que esta mal al pasarlo, pero lo que no me queda claro es como recorrer el array muro e ir accediendo a los 4 parametros de cada elemento, han sido declarados asi
Código que tengo que hacer refernecia al objeto muro y asu vez a vector? Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: egyware en 12 Marzo 2014, 15:18 pm Pero fíjate lo que hace el constructor.
Código
Copia los dos vectores pasados como argumentos y los guarda en las propiedades correspondientes del objeto muro. Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: Mitsu en 12 Marzo 2014, 16:32 pm Hola, la respuesta de egyware ya te ha dicho todo lo que necesitas para costruir tu algoritmo de manera correcta. Lo que pasa es aún no puedes verlo porque te falta la base de la POO(Programación orientada a objetos). Tienes que estudiar teoria y práctica de conceptos de encapsulamiento, herencia, polimorfismo, interfaces, clases y objetos para que puedas proseguir con Java ya que es un lenguaje orientado a objetos.
Ahora vamos con tu algoritmo. Puedes crear una clase que extienda de Vector, debe ser un bean o POJO. Un POJO es una clase con cierto patrón que consiste en: propiedades privadas un constructor vacío como mínimo y métodos getter y setter. Un método getter es un método público que te permite obtener una propiedad (recuerda que la propiedad es privada por lo tanto no podemos acceder directamente a ella) y un método setter es un método público también que permite asignarle un valor a una propiedad. Voy a dividir mi respuesta en 2 xq el móvil no me deja xD Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: Mitsu en 12 Marzo 2014, 16:49 pm Este es el concepto de encapsulamiento cuyo objetivo es encapsular las propiedades del resto de clases. Sabiendo ya esto aplícalo a una clase que extienda de Vector, utiliza setters y getters, ej:
Código
Código
Y el getter seria asi: Código
Y asi con todas las propiedades de la clase. Luego setteas los valores de las propiedades y desde el constructor de Muro accedes a las propiedades de esta clase tan solollamando a sus getters. Código
Código . Saludos. Título: Re: pasar un objeto a un objeto, es posible?? Publicado por: kikian94 en 13 Marzo 2014, 08:41 am ya lo arregle y me funciona perfectamente, muchas gracias :)
|