[Php-objetos] Problema extraño (HEEEEEEEEEEEEEELP!!!!!!!!)

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Sab Feb 28 01:47:14 ARST 2009


Hola Juan!

	No es extraño.

	Definiste depósitos y extracciones como privadas... y lo privado no se
hereda.
	Para que no sean visibles desde afuera y usarlas en la subclase,
definilas como protegidas y listo!

	Muy bueno el trabajo de modelar los movimientos. Excede el enunciado
pero es correcto para este modelo.

	Lo que me desentona es que separes los movimientos en depósitos y
extracciones, en lugar de agruparlos como "movimientos" y ponerles como
atributos debe y haber. Agregás una complejidad que por comportamiento
no la veo justificada... pero esto del diseño es opinable, así que
espero tu opinión al respecto.

	Saludos!

El vie, 27-02-2009 a las 23:49 -0300, Juan Marcos Rigoli escribió:
> Mas allá de lo bien o mal que esté el ejercicio (queria terminar de
> que funcione para mandartelo) tengo un problema un poco extraño con mi
> php (y digo "mi" porque es tan raro que ya veo que a mi solo me pasa).
> Cuando ejecuto el código adjunto me sale lo siguiente por pantalla:
> 
> 
> -----
> 
> CuentaCorriente Object
> (
>     [limiteDescubierto:private] => 1500
>     [idCuenta:private] => 1
>     [saldo:private] => 100
>     [titular:private] => Raúl Ramón Rodriguez
>     [depositos:private] => Movimientos Object
>         (
>             [count:private] => 1
>             [items] => Array
>                 (
>                     [0] => Movimiento Object
>                         (
>                             [importe:private] => 100
>                             [fecha:private] => 1235791994
>                         )
> 
>                 )
> 
>         )
> 
>     [extracciones:private] => Movimientos Object
>         (
>             [count:private] => 0
>         )
> 
> )
> 
> 
> Notice:  Undefined property: CuentaCorriente::$saldo in
> C:\www\objetos\clase2\clase2ejercicio2.3.php on line 210
> 
> 
> 
> Notice:  Undefined property: CuentaCorriente::$saldo in
> C:\www\objetos\clase2\clase2ejercicio2.3.php on line 212
> 
> 
> 
> Notice:  Undefined property: CuentaCorriente::$extracciones in
> C:\www\objetos\clase2\clase2ejercicio2.3.php on line 216
> 
> 
> 
> Fatal error:  Call to a member function addMov() on a non-object in
> C:\www\objetos\clase2\clase2ejercicio2.3.php on line 216
> 
> -----
> 
> El print_r() lo puse dentro del obeto CuentaCorriente que es el que da
> error. Después de dar muchas vueltas llegué a darme cuenta que el
> código falla cuando quiero acceder al saldo, a las extracciones e
> incluso cuando hago el print_r($this->saldo) justo debajo del
> print_r($this) que muestra perfectamente que $this es un objeto
> instanciado y el atributo saldo vale 100.
> 
> Todo esto lo termina rematando con el "Fatal error" cuando quiero
> acceder al método $this->extracciones->addMov() dando a entender que
> extracciones no es un objeto, pero claramente se ve en el primer
> print_r() que extracciones es un objeto instanciado de tipo
> Movimientos.
> 
> Pareciera que CuentaCorriente no tomara la herencia de CuentaBancaria.
> ¿Por qué da este error?
> 
> 
> 
> Saludos!
> 
> 
> - Juan Marcos.
> 
> NOTA: comenté para probar las extracciones de $raul que es el objeto
> de tipo CuentaCorriente, pero con los demás objetos tengo el mismo
> problema, sólamente en las extracciones (o lo que vendria a ser lo
> heredado de CuentaBancaria).
-- 
Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-objetos