OOP Necesita ayuda para obtener métodos para devolver objetos.Estoy trabajando en una clase de vectores en JSL. Me gustaría tener un método que devuelva una versión normalizada del vector. A continuación se muestra mi script y mensaje de error. ¡Gracias!
Clear Log();
Clear Globals();
Define Class(
"vector",
x = 0;
y = 0;
z = 0;
_init_ = Method( {a, b, c = 0},
x = a;
y = b;
z = c;
);
_show_ = Method( {},
Return( x, y, z )
);
mag = Method( {},
magnitude = Sqrt( x ^ 2 + y ^ 2 + z ^ 2 )
);
normalize = Method( {},
nv = vector(0,0,0);
length = Sqrt( x ^ 2 + y ^ 2 + z ^ 2 );
show(length);
nv:x = x / length;
nv:y = y / length;
nv:z = z / length;
nv;
);
);
bob = New Object( vector( 4, 2 ) );
Show( bob );
bob<<NORMALIZE></NORMALIZE>Nombre sin resolver: vector en acceso o evaluación de 'vector', vector (0, 0, 0)
Re: OOP Necesita ayuda para obtener métodos para devolver objetos.Soy un novato cuando se trata de clases en general y clases JMP. Esto funciona:
Clear Log();
Clear Globals();
Define Class(
"vector",
x = 0;
y = 0;
z = 0;
_init_ = Method( {a, b, c = 0},
x = a;
y = b;
z = c;
);
_show_ = Method( {},
Return( x, y, z )
);
mag = Method( {},
magnitude = Sqrt( x ^ 2 + y ^ 2 + z ^ 2 )
);
normalize = Method( {},
nv = [0,0,0];
length = Sqrt( x ^ 2 + y ^ 2 + z ^ 2 );
show(length);
nv[1] = x / length;
nv[2] = y / length;
nv[3] = z / length;
Print(char(nv));
nv;
);
);
bob = New Object( vector( 4, 2 ) );
Show( bob );
bob = bob:normalize();
show(bob);
Es un método para pasar a uno mismo. Sugiero la Guía de scripting de JMP y la búsqueda de Clases en este sitio web.
Re: OOP Necesita ayuda para obtener métodos para devolver objetos.Georgia,
Gracias por su respuesta. Encontré el mensaje de "clonación" para los objetos que puedo usar para crear una copia del objeto y luego normalizarlo. Seguiré mirando a mi alrededor y veré si puedo encontrar algo sobre cómo devolver objetos desde métodos directamente como lo hacen en el ejemplo de clase "compleja".
Juan