Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/05/2010, 10:44
aries_19_mad
 
Fecha de Ingreso: abril-2010
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 5
Exclamación Instanciar , hederar o operador de resolucion???

en estos casos para poder usar los metodos de otra clase se pueden hacer tanto con herencia o enviando un parametro Object1 al constructor de otra clase Object2 y se conseguiria el mismo efecto o sino usando el operador de resolucion.
Entonces cual usar y cuando y como puedo representarlo como diagrama UML osea Asociacion (por direccion y cardinalidad), agregacion y composicion?

primer caso:1
Código PHP:
class Obj1{
    function 
getVal() { ... }
}
 
class 
Obj2{
    var 
$obj1;
    function 
__construct(&$obj1) {  $this->obj1=&$obj1;  }
 
    function 
doVal () {  $this->obj1->getVal();  }
}
 
$obj1=new Obj1;
 
$obj2=new Obj2($obj1); 
//ejecuta getVal() de Obj1 similar efecto ha hacer Obj1 extend Obj2
Código PHP:
$obj2->doVal (); 
Segundo caso:2
Código PHP:
class Obj1{
    
mostrar(){ ... }
}
 
class 
Obj2{
    var 
$obj1;
    var 
$content;
    function 
__construct() {   $this->obj1=new Obj1;  }
 
    function 
setMostrar() { $this->content=$this->obj1->mostrar(); }

//en este caso var $content de Obj2 ahora podra usar el metodo de Obj1

Tercer Caso:3
Código PHP:
class Revisar{
    function 
ver() { echo ($this->error);  }
}
 
class 
Setup{
    var 
$errMsj='Mensaje Error';
    function 
verErr() {
        if ( 
DEBUG == ) {  Revisar::ver();  }
    }
}
define ('DEBUG',1);
$setup= &new Setup;
$setup->verErr(); 

//En este caso el operador de resolucion tmb hace casi la misma idea de los
//ejm anteriores solo q el metodo ver() es llamado pero recibe el parametro
//$errMsj de la otra clase(Setup)



Espero me pueden quitar estas dudas... al respecto.. y que implca usar el simbolo & en las clases (por ejm en: $setup= &new Setup; o en: function __construct(&$obj1) { ...} espero sus respuestas... Saludos... desde Peru.. de antemano gracias..... )

Última edición por aries_19_mad; 07/05/2010 a las 11:27 Razón: Se deformo el contenido