<?xml version="1.0"?>
<slide title="Programaci&#243;n Orientada a Objetos">

<example title="Definici&#243;n de una clase"><![CDATA[<?php
  class Inventario {
    var $articulos;
    function agregar_articulo($artnr, $num) {
        $this->articulos[$artnr] += $num;
    }  
  } 
?>]]></example>

<example title="Heredando de una clase con constructor"><![CDATA[<?php
  class InventarioNombrado extends Inventario {
    var $dueno;
    function InventarioNombrado($nombre) {
        $this->dueno = $nombre;
    }
  } 
?>]]></example>

<example title="Invocaci&#243;n"><![CDATA[<?php
  $inv = new InventorioNombrado("NerdChullos");
  $inv->agregar_articulo(170923, 2);
?>]]></example>

<example title="Llamadas estaticas a m&#233;todos" result="1"><![CDATA[<?php
  class Conversiones {
     function PulgadasACentimetros($npulg) {
        return 2.54 * $npulg;
     }
  }

  echo '5 pulgadas son '.Conversiones::PulgadasACentimetros(5).' centimetros';
?>]]></example>
<break lines='2'/>
<blurb>
 *Llamar a m&#233;todos en la clase padre*. Esto es &#250;til cuando se necesita
 el concatenar los constructores.
</blurb>
<example result="1"><![CDATA[<?php
  class Felino {
    function Felino() {
        echo "Constructor de Felino";
    }
  }

  class Gato extends Felino {
    function Gato() {
        echo "Constructor de Gato<br />\n";
        $name = get_parent_class($this);
        parent::$name();
    }
  }

  $a = new Gato();
?>]]></example>

<br clear='2'/>
</slide>
