Haber yo tambien coopero, aunque sé poco (dos días de leer y uno de codear)
Según lo que entiendo es que al poner tus atributos en privado al no poder ser accesados fuera de la clase necesitas usar funciones set y get para obtener y colocarle valores a esos atributos, por ejemplo:
Código PHP:
Class example
{
private $atributo1;
private $atributo2;
public function setAtributo1($variable)
{
$this->atributo1 = $variable;
}
public function getAtributo2()
{
return $this->atributo2;
}
function __construct($exam)
{
$this->atributo2 = $exam;
}
}
$obj = new example("Esto es un ejemplo");
$obj->setAtributo1("Seteamos el atributo 1.. es como una puerta hacia el objeto, ya que no tenemos acceso al atributo..");
echo $obj->getAtributo2();
Eso es lo que yo entendí, si estoy mal pues corregidme :)
un saludo...
Ah! y aquí va lo que codie que le faltan varios retoques aún y que no terminé, pero espero que esté bien codeado..
Código PHP:
<?php
Class Auto
{
public $velocidad;
private $gasolina;
public $puertas;
public $velocidad2;
static public function cargar_gasolina($litro){
$this->gasolina += $litro;
}
public function enciende_motor($encender)
{
if ( $encender )
{
return true;
}
}
public function frenar_auto()
{
while($this->velocidad2 > 0){
echo "Auto frenando: bajando velocidad:". $this->velocidad2."\n";
$this->velocidad2--;
}
if( $this->velocidad2 == 0 ) return 0;
}
public function acelerar($acelera)
{
if ( $acelera ) {
while($this->velocidad2 < $this->velocidad && $acelera+$this->velocidad2 != $this->velocidad2){
echo "El auto acelera: $this->velocidad2 \n";
$this->velocidad2++;
if ( $this->velocidad2 == $this->velocidad )
{
return $this->velocidad2;
}
}
return $this->velocidad2;
}
}
function __construct($velocidad,$cilindros,$puertas,$combustible)
{
$this->velocidad = $velocidad;
$this->cilindros = $cilindros;
$this->puertas = $puertas;
$this->velocidad2 = 0;
$this->gasolina = $combustible;
}
}
$obj = new Auto("315","16","2");
if ( $obj->enciende_motor("1") )
{
echo "El auto va a:". $obj->acelerar(6)." km/h \n";
$obj->frenar_auto();
echo "El auto frenó y su velocidad es de: $obj->velocidad2\n";
}
exit("Fin de programa");
?>