[Php-objetos] Ejercicio1

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mar Feb 10 13:48:51 ART 2009


Hola Gonzalo,

El mar, 10-02-2009 a las 11:33 -0200, .txalo. escribió:
> Leo, Gerardo y demases.
> 
> Ayer me puse con el ejercicio uno y estuve pensando en los atributos
> en comun de todos los vehiculos y se me planteo un problema parecido
> al que plantea Gerardo en su punto 3.
> Los tres vehiculos tienen atributos en comun:
> 
> Abstract Class Vehiculo
> *ruedas
> *combustible
> *consumo
> >getters y setters
> >calcularConsumo (abstract)

	Suena bien.

> Despues PickUp y Camion comparten el atributo KgCarga, se podria hacer
> otra clase que herede de vehiculo y sea  VehiculoCarga?
> Con el agregado del atributo KgCarga. O creas una clase PickUp y otra
> Camion con sus respectivos atributos exclusivos? 

	Para este problema, da lo mismo!
	No hay que caer en una "parálisis metodológica".
	Si esto fuera a extenderse en algún sentido, podríamos evaluar si sería
mejor de una manera u otra, pero sin saber eso, no es posible esa
evaluación.

> Bueno, despues tengo otra pregunta con respecto a la parte de clases y
> metodos abstractos, pero la hago el sabado porque es dificil de
> explicar.

	Ok.

> >>2.- Combustible, es un objeto?
> 
> Yo cree una clase combustible con los 2 atributos y sus
> setter-getters.
> Pero una vez instanciado dentro de un objeto que hereda de vehiculo
> (auto por ejemplo) como hago referencia a los metodos del objeto
> combustible?? Ah?
> Probe con esto (dentro del metodo calcular consumo):
> 
> $this->combustible->getValor();
> $combustible->getValor();
> self::combustible->getValor() (por probar nomas ... y descubri el
> nombre de los "::")

	Y? qué pasó con la prueba?
	Lo que no nos decís acá es en qué momento hacés el "new" de
Combustible.
	Los Objetos existen después del "new".

> Esto lo hice dentro del metodo calcularConsumo();
> Y el constructor de la clase Auto (que hereda de Vehiculo) es algo
> asi:
> __construct ($ruedas, $plazas, $consumo, $combustible*) (al no ser
> tipado PHP se da cuenta que le paso un objeto como parametro?)

	Entonces hacés el new afuera para después pasárselo en el mensaje del
constructor?

	Es más simple que el constructor del vehículo haga el new del
Combustible...

> *Sirve poner como parametro del constructor (en la creacion del objeto
> auto) "new Combustible ($tipo, $valor)" ... es CHANCHO?

	Nop, para esto el new se hace en la línea anterior.

> En el caso de atributos que no van a cambiar, como la cantidad de
> ruedas, conviene definir un getter?

	Los getters y setters son los que implementan el encapsulamiento. Sí
vale la pena tener los atributos encapsulados. Si en tu diseño sos
valores no cambias, definilos como constantes ;-)

> Esta mal, en este ejercicio, definir todas las clases en el mismo
> archivo? Por una cuestion practica nomas ... despues prometo que las
> separo.

	No está mal ni bien: no hay reglas para esto, excepto la comodidad y lo
que dicte la experiencia.
	Cosas que vale la pena tener juntas para un sistema, así hacés un solo
include, no son buena idea para otro sistema.

> Bueno, eso es todo por ahora, estoy trabado con el metodo que calcula
> el consumo.

	Ok Adelante!

> PD: Como dijeron el sabado ... va a estar transitada la lista!

	Mejor!

> PD2: Los "::" se llaman ... "PAAMAYIM NEKUDOTAYIM"y no me acuerdo
> donde corno lei que era una palabra que tomaron del hebreo y no se por
> que razon ... pera ... Ey! Wikipedia ...!!! Jua! confirmado ... lo
> primero que aparece en Wikipedia(en),incluso antes de la definicion,
> es la palabra escrita en hebreo y su pronunciacion correcta.

	Qué lo parió! A mi me sonaba a Indi o Hurdú, pero no a hebreo.

> PD3: "~" chirimbolito se llama virgulilla! jejeje

	Ampliación: todos los chirimbolos se llaman virgulilla... es una
palabra más genérica de lo que nos gusta como programadores.


	Seguimos!
-- 
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