OOP Serve aiuto per ottenere metodi per restituire oggetti.Sto lavorando su una classe di vettori in JSL. Mi piacerebbe avere un metodo che restituisca una versione normalizzata del vettore. Di seguito è il mio script e il messaggio di errore. Grazie!
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>Nome non risolto: vettore in accesso o valutazione di 'vettore', vettore (0, 0, 0)
Ri: OOP Serve aiuto per ottenere metodi per restituire oggetti.Sono un principiante quando si tratta di classi in generale e classi JMP. Questo funziona:
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);
È un metodo per passare se stessi. Suggerisco la guida di scripting JMP e la ricerca di questo sito Web per le classi.
Ri: OOP Serve aiuto per ottenere metodi per restituire oggetti.Georgia,
Grazie per la tua risposta. Ho trovato il messaggio "clone" per gli oggetti che posso usare per creare una copia dell'oggetto e normalizzarlo. Continuerò a guardarmi intorno e vedrò se riesco a trovare qualcosa su come restituire oggetti dai metodi direttamente come fanno nell'esempio di classe "complesso".
John