Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/04/2006, 13:03
califa010
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 10 meses
Puntos: 5
Buenas.

No sé exactamente dónde está el problema, pero me parece que puede deberse a que creas una nueva instancia, la asignás a una variable y después hacés un trace de esa variable, que es una referencia al objeto (y por eso daría [object Object]. Pero no estoy seguro.

Fijate también que estás usando sólo el constructor, el resto de los métodos son privados. Cambiando private por public, funciona. Si usás el constructor para cada operación, estarías creando muchos objetos, lo cual consume recursos innecesariamente. Podrías crear un sólo objeto y tener algunos métodos públicos (eventualmente otros privados) que hagan las operaciones y devuelvan valores. Por ej, algo así:

Código:
var objOperacion:operacion = new operacion();
objOperacion.suma(1,5);
objOperacion.resta(7,2);
Otra cosa interesante sería crear métodos estáticos. De esta forma, no creás una instancia de la clase/objeto cada vez que quieras hacer una operación. Simplemente, lo llamás por el nombre de la clase más el nombre del método.

Por ejemplo:

Código:
class operacion {
	function operacion() {
	}
	static public function suma(num1, num2):String {
		return (num1+num2).toString();
	}
	static public function resta(num1, num2):String {
		return (num1-num2).toString();
	}
	static public function multi(num1, num2):String {
		return (num1*num2).toString();
	}
	static public function div(num1, num2):String {
		if (!num2 == 0) {
			return (num1/num2).toString();
		} else {
			return "División imposible.";
		}
	}
}
Y en el script:

Código:
import operacion;
trace(operacion.suma(1,4));
trace(operacion.resta(1,4));
trace(operacion.multi(1,4));
trace(operacion.div(1,4));
Para este caso yo usaría esta útlima opción.

Suerte
Califa