Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Carxl en 4 Agosto 2007, 23:37 pm



Título: Principiante con Php orientado a objetos
Publicado por: Carxl en 4 Agosto 2007, 23:37 pm
Hola a todos!!!

Pues resulta que lo que llevo programando en php siempre lo he hecho de manera estructurada (la manera antigua), ahora por cuestiones de trabajo, necesito aprender POO para php. Estudiando un poco me encontrè con lo que llaman "constructor", y pues me surgiò una duda teòrica, es necesario siempre definir dicho constructor en la clase??, o no hay necesidad de hacerlo??.

Por ahora es simplemente eso, despuès los molestarè mas... ;D ;D

Gracias de antemano!!! ;)
 


Título: Re: Principiante con Php orientado a objetos
Publicado por: alone-in-the-chat en 5 Agosto 2007, 16:45 pm
 
         No siempre es necesario definir el constructor de una clase

        Leete este enlace http://www.webestilo.com/php/articulo.phtml?art=28 (http://www.webestilo.com/php/articulo.phtml?art=28)

   Tiene info muy interesante que te sera util.

Saludos

PD. O.O no me llego a entender con el editor del foro  :P


Título: Re: Principiante con Php orientado a objetos
Publicado por: Carxl en 5 Agosto 2007, 17:39 pm
Hola alone-in-the-chat!!!

Muchas gracias por tu respuesta!!! ;D

Cuìdate!!


Título: Re: Principiante con Php orientado a objetos
Publicado por: Sanjuu en 6 Agosto 2007, 10:15 am
Tecnicamente el constructor es imprescindible para usar cualquier objeto, sino este objeto es imposible que pueda crearse.

Otra cosa diferente es que el constructor haya que implementarlo, generalmente es recomendable ya que el constructor puede realizar operaciones de asignación inicial y te ahorras un método que haga esto. Pero casi todos los lenguajes de programación incluyen un constructor por defecto que, aunque no lo implementes, internamente se usa, no hace nada, simplemente construir el objeto, pero está ahí pues es imprescindible para que un objeto se cree.


Título: Re: Principiante con Php orientado a objetos
Publicado por: Carxl en 7 Agosto 2007, 19:35 pm
Hola Sanjuu!!!

Muchas gracias por tu aclaraciòn!!! Ya entiendo al menos esto!!!

Saludos!! ;)


Título: Re: Principiante con Php orientado a objetos
Publicado por: Carxl en 8 Agosto 2007, 17:09 pm
Hola de nuevo...

Pues al seguir estudiando, me surgiò la suguiente duda cuando lleguè a "Clases Abstractas", pues mirando el manual oficial de php...

Para que se declaran clases abstractas?? Realmente que es lo que hace "abstract" en una clase o mètodo?? Intentè el ejemplo que aparece en el manual oficial pero no me corriò... :-\ :-\

Gracias de antemano!!! ;)


Título: Re: Principiante con Php orientado a objetos
Publicado por: Sanjuu en 11 Agosto 2007, 00:55 am
A ver una clase abstracta es aquella que no se instancia y por tanto no se crean objetos de la misma. Para que sirve te podrás preguntar. Bien sirve para que otras clases hereden sus propiedades. Me explico.

Supongamos que tenemos una empresa y queremos hacer un modelado de clases según el puesto o cargo que ocupen los distintos miembros.

Tendríamos la clase abstracta persona que podría tener los siguientes atributos:
- nombre
- dni
- edad
- antiguedad en la empresa

luego podríamos tener la clase empleado que heredaría los atributos de persona y además podría llevar:
- sede
- turno
- puesto

y por ejemplo otra que podría ser de los directores:
- departamento
- empleados a su cargo


Si te das cuenta ambas clases comparten los atributos genéricos de la clase persona y ambas tienen sus atributos específicos, pero en este caso, crear un objeto instanciando a persona sería insuficiente para resolver nuestro problema, por eso necesitamos esa clase abstracta (genérica) que no se instancia y si instanciamos a director o empleado que son clases derivadas de la clase persona y que heredan sus atributos.


No se si el ejemplo que puse es el más correcto y no se si me expliqué del todo bien pero eso es más o menos la idea ;)


Título: Re: Principiante con Php orientado a objetos
Publicado por: Carxl en 13 Agosto 2007, 00:32 am
Hola Sanjuu!! :D

Hey muchas gracias por responder!!!. Ya creo tener la idea mas clara ;D ;D, cualquier cosa... puedo postear??

Chau y de nuevo gracias!