[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