Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

duda con clases, y su diferencia

Estas en el tema de duda con clases, y su diferencia en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola compis, a ver si alguien me puede decir que diferencia hay entre estas dos clases, ya que con ambas se logra lo mismo Código ...
  #1 (permalink)  
Antiguo 17/01/2009, 12:14
overon37
Invitado
 
Mensajes: n/a
Puntos:
Exclamación duda con clases, y su diferencia

Hola compis, a ver si alguien me puede decir que diferencia hay entre estas dos clases, ya que con ambas se logra lo mismo

Código PHP:
class paciente{
    var 
$nombre;
    var 
$edad;
    
    function 
datos($nombre_enviado,$edad_enviada){
        
$this->nombre=$nombre_enviado;
        
$this->edad=$edad_enviada;
        echo 
"El paciente ".$this->nombre." tiene ".$this->edad;
    }
}
/** instanciamos la clase */
$instancia= new paciente();
$instancia->datos("pepe",33); 


/** Creamos otra clase */
class paciente2{

    function 
datos2($nombre_enviado,$edad_enviada){
    
        echo 
"El paciente ".$nombre_enviado." tiene ".$edad_enviada;
    }
}
/** instanciamos la clase */
$instancia2= new paciente2();
$instancia2->datos2("juan",54); 
Se ve la diferencia de ambas clases, la primera es mas "larga", pero la última hace exactamente lo mismo, con lo que...

¿es necesario tanto this->.....?
  #2 (permalink)  
Antiguo 17/01/2009, 13:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda con clases, y su diferencia

imagina que paciente2 tiene otro metodo... llamado dameNombre()

¿como obtienes el nombre "juan" ???, antes dado con esta clase... imposible, esta mal implementado....

sin embargo, la clase paciente lo hara con claridad... ya que el nombre fue asignado a su variable interna... de modo que tiene mas sentido y utilidad que la clase paciente2

Código PHP:
class paciente{
    var 
$nombre;
    var 
$edad;
    
    function 
datos($nombre_enviado,$edad_enviada){
        
$this->nombre=$nombre_enviado;
        
$this->edad=$edad_enviada;
    }

/*    function imprimeDatos() {
        echo "El paciente ".$this->nombre." tiene ".$this->edad;
   }*/

    
function dameNombre() {
       return 
$this->nombre;
    }


    function 
dameEdad() {
       return 
$this->edad
    
}

// ...
}
/** instanciamos la clase */
$instancia= new paciente();
$instancia->datos("pepe",33); 

// $instancia->imprimeDatos(); 

echo "El paciente ".$instancia->dameNombre()." tiene ".$instancia->dameEdad(); 
y esa es una particularidad de un objeto, ya que eso es una clase... OOP!

¿¿ahora entiendes como no logras lo mismo???

¿¿ahora entiendes el poder de $this ???


PDTA: te sugiero leas algun buen libro de OOP, te sorprenderías...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 17/01/2009 a las 13:58
  #3 (permalink)  
Antiguo 17/01/2009, 13:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: duda con clases, y su diferencia

Es necesario solo si deseas almacenar el nombre y la edad para futuras referencias en otras funciones o directamente en el objeto, por ejemplo para guardar en base de datos. De hecho la idea de las clases es facilitarte el acceso a los objetos, propiedades y metodos, no solo para una simple asignacion o un echo "algo";
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 17/01/2009, 14:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: duda con clases, y su diferencia

Tema trasladado a PHP Orientado a Objetos.
  #5 (permalink)  
Antiguo 17/01/2009, 15:22
overon37
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: duda con clases, y su diferencia

Cita:
Iniciado por Triby Ver Mensaje
Es necesario solo si deseas almacenar el nombre y la edad para futuras referencias en otras funciones o directamente en el objeto, por ejemplo para guardar en base de datos. De hecho la idea de las clases es facilitarte el acceso a los objetos, propiedades y metodos, no solo para una simple asignacion o un echo "algo";
si, eso si, yo he trabajado con clases en visual studio, con .net...... y lo que es pa POO y sus principios lo entiendo perfectamente dese hace mucho, pero en php es como si fuese un añadido, no realmente POO
  #6 (permalink)  
Antiguo 17/01/2009, 16:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: duda con clases, y su diferencia

A que te refieres con "añadido", "realmente POO"? Crreo mas bien tus conceptos no son tan claros, PHP Tiene soporte completo a POO, por lo que más bien es que entiendas un poco del proceso de programación web, ya que recuerda que el hacer una clase es encapsular su funcionamiento lo mayor posible, para que las "impresiones" se hagan en la implementación y no en la definición.

Saludos.
  #7 (permalink)  
Antiguo 17/01/2009, 16:53
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: duda con clases, y su diferencia

Cita:
Iniciado por overon37 Ver Mensaje
si, eso si, yo he trabajado con clases en visual studio, con .net...... y lo que es pa POO y sus principios lo entiendo perfectamente dese hace mucho, pero en php es como si fuese un añadido, no realmente POO
Disculpa Overon, y te lo voy a decir con el mayor de los respetos que me mereces (pero corresponde que lo diga por el tamaño del disparate):

Tú no tienes NI IDEA de lo que es POO y no lo digo como un insulto, lo digo en base a tu demostración de desconocimiento del tema, primero por el ejemplo inicial y luego por argumentar que sabes.

Esto no te hace "mala persona", no es ningún pecado no saber o equivocarse (a veces las personas se confunden cuando hacemos las correcciones o críticas) no te odiamos ni esto debería considerarse un insulto.

Tómalo con humildad y aprovecha la oportunidad para aprender (para eso está este foro).

Empieza por darle una leída al capítulo de Wikipedia, si ya lo leíste, vuelve a leerlo, no entendiste nada a la primera.

PD: hace unos años que enseño, así que creo es un buen momento para darte un "tirón de orejas" y sugerirte que hasta no soluciones tu desconocimiento sobre POO no vuelvas a repetir este tipo de afirmaciones, ya que te podría hacer pasar un mal rato en una reunión, o hasta perder un trabajo.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com

Última edición por enriqueplace; 18/01/2009 a las 06:50 Razón: mal redactado
  #8 (permalink)  
Antiguo 17/01/2009, 22:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda con clases, y su diferencia

Cita:
Iniciado por enriqueplace Ver Mensaje
[...] en base a tu demostración de desconocimiento del tema, primero por el ejemplo inicial [...]
ni hablar, yo no se nada de OOP .... pero (si se lo que es) jeje...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:18.