Post on 23-Feb-2018
7/24/2019 De Objetos y Clases
1/6
De Objetos y ClasesEmpezamos con algo suavito. Qu es un objeto? Qu es una clase? Son lo mismo? En qu se parecen y
i!erencian?
"na clasees algo conceptual# es la e!inici$n# m%s bien la basee los objetos. &as clases e!inen
las propiedadesy los mtodosque luego por%n usar los objetos. En trminos e una aplicaci$n# usaremos un
usuario. Sabemos que un usuario va a tener# por ejemplo# un valor usuarioy otro valor passwordas' comoun mtodopara (acer login.
El objeto# por otro lao# es la usuario en s' que se ajusta a lo que (emos e!inio en la clase.)or tanto# tenemos
al usuario juancon contrase*a 01juan01y sabemos que puee (acerlogin. Se ice que juanes
una instanciael objeto Usuario. )oemos tener cienesy cienes e usuarios# pero sabemos que toos ellos
tienen lo mismo.
+(ora en ),)
Crear una clase en ),) es bastante sencillo y no i!iere muc(o a como se (ace en otros lenguajes e
programaci$n-
+(ora veamos c$mo poemos crear a juan. Solo tenremos que valernos e la palabra clave new.
)or a(ora !%cil# no?
+*aieno propieaes
"na propiea no es m%s que una variable# y la usaremos para guarar in!ormaci$n sobre el objeto en s'. eamos
c$mo a*air nuestras propieaes.
En seguia veremos qu es public. )or a(ora quate con que la propiea es pblicalo cual quiere ecir quecualquiera puee acceer a ella. Despus e public# tenemos el nombre e la propiea.
eamos c$mo escribir y leer estas propieaes.
7/24/2019 De Objetos y Clases
2/6
Si te !ijas# estamos usano $juan->[nombre_propiedad]. Quiz% te ests preguntano/ por qu no pueo
(acer algo as'? Usuario->usuario. &a respuesta es# que puee (aber un n0mero ineterminao e usuarios y#
el valor 12juan12 est% entro el objeto# no e la clase.
+*aieno mtoos
+*air mtoos es tan sencillo como a*air propieaes. amos a a*air un mtoo para saluar.
&o primero que te estar%s preguntano es/ qu es $this? $thises la !orma que tienen los objetos e re!erirse
a s' mismos. )or ene# para poer acceer al valor e $usuarioese el propio objeto# tenremos que valernos
e $this.
&lamar al mtoo no tiene muc(o misterio-
+(ora# si usamos varios objetos# poemos almacenar valores istintos en ellos y llamar a sus mtoos-
3toos m%gicos),) nos o!rece una serie e mtoos m%gicos que son llamaos cuano realizamos ciertas acciones con el
objeto# como por ejemplo cuano un objeto es creao. Esto nos ayua a automatizar trabajo en ciertas ocasiones.
Constructores y estructores
Cuano una clase se crea o se estruye# se llama a unos mtoos m%gicos como ya (emos aelantao. Si
queremos realizar alguna acci$n en cualquiera e los os eventos# tenremos que e!inir esos mtoos e
implementar su !uncionalia.
El mtoo __construct()se llama cuano creamos una clase y suele ser un buen punto para rellenar
in!ormaci$n por e!ecto# o !ormar un objeto con algo que venga e la base e atos# etc.
Cabe estacar que poemos pasar atos al constructor-
7/24/2019 De Objetos y Clases
3/6
)or otro lao# el estructor se llama cuano la clase es estruia. Esto ocurre autom%ticamente cuano ),)
termina e ejecutarse# libera toos los recursos que tenga asociaos y va llamano al mtoo __destruct()e
toas las clases en caso e que lo tengan. 4ambin poemos !orzarlo usano la !unci$n unsetsobre el objeto. En
el estructor se suelen implementar cierres e cone5iones a bases e atos# liberaci$n e memoria# etc.
e%moslo en un breve ejemplo-
E5isten m%s mtoos m%gicos que (e obviao porque no los consiero importantes para un curso bsicoe
orientaci$n a objetos. 6o obstante si eres curioso o quieres saber m%s# no ejes e ec(arle un vistazo a
laocumentaci$n o!icial.
,erencia e clases+qu' es one veremos uno e los aspectos m%s potentes e la orientaci$n a objetos. "na clase
puee heredarpropieaes y mtoos e otra clase. Esto es 0til cuano quieres a*air !uncionalia a una clase
ya e5istente.
Siguieno nuestro ejemplo# nuestra clase padrees Usuarioy a(ora# vamos a crear una clasehijaque
sea Administrador.
http://www.php.net/manual/es/language.oop5.magic.phphttp://www.php.net/manual/es/language.oop5.magic.phphttp://www.php.net/manual/es/language.oop5.magic.php7/24/2019 De Objetos y Clases
4/6
"sano la palabra clave etends# la clase Administrador(a (ereao las propieaesusuarioy passwordy
el mtoo saludary (emos a*aio un nuevo mtoo baneara esta clase e5tenieno las !uncionaliaes
b%sicas e un usuario. Quiz% el ejemplo sea muy absuro pero tene en cuenta que poemos querer implementar
!unciones m%s complejas comologin# logout# etc. y e esta !orma nos acabamos a(orrano muc('simo c$igo.
Qu pasar'a si quiero que saluar sea istinto en el +ministraor?
Sobreescribieno mtoos
Sobreescribir un mtoo es tan sencillo como/ 7volverlo a e!inir8 En la clase (ija# volvemos a e!inir el mtoo
saluar.
Si aem%s queremos mantener la !uncionalia original# poemos (acerlo llamano a la !unci$n el padre-
7/24/2019 De Objetos y Clases
5/6
Como ver%s# (emos mezclao !uncionaliaes e ambos mtoos.
isibilia e mtoos y propieaes,asta a(ora tanto las propieaes como los mtoos que (emos vistos# eran toos public. +(ora vamos a ver
qu signi!ica eso y el resto e tipos que tenemos.
public
+ los mtoos y propieaes public# se puee acceer ese cualquier sitio. 4anto entro e la clase como
!uera.
protected
Cuano eclaramos una propiea o mtoo comoprotected, solo poremos acceerlos ese la propia
clase o sus escenientes 9las clases (ijas:.
private
&os mtoos y propieaespri!atesolo pueen ser le'os entro e la propia clase que lo e!ine. Este breve
ejemplo nos muestra lo que pasar'a-
Clases y mtoos est%ticos&as clases y mtoos est%ticos pueen ser e cualquiera e los tipos
anteriores#public,protectedo pri!atepero tienen la peculiaria e que no requieren que la clase sea
instanciaa. +em%s# las propieaes est%ticas guaran el valor urante la ejecuci$n el script. eamos un breve
ejemplo-
7/24/2019 De Objetos y Clases
6/6
4en en cuenta# que cuano nos re!erimos a una propiea o mtoo est%tico# no poremos (acer uso e$this,
pero tenremos acceso asel", que viene a ser lo mismo solo que 0nicamente poremos usar mtoos y
propieaes est%ticas. )uees llamar a mtoos y usar propieaes est%ticas ese un mtoo p0blico pero no al
contrario.
; (asta aqu' / por a(ora. +(ora mismo tenr'as que tener una iea m%s clara el estilo e programaci$n con
objetos. 4e recomieno que empieces a probar por tu cuenta y# si tienes uas# vengas y las comentes. +prener la
programaci$n orientaa a objetos es uno e los pasos importantes e la via e too programaor. Cuano se
lleva a cabo e la !orma aecuaa# el c$igo proucio ser% m%s !%cil e leer# e mantener e incluso por%s
compartir clases entre istintas aplicaciones ya que una clase solo ebe contener c$igo relacionao con su propia
clase.