Programación orientada a objetos en PHP: Clases y objetos

En el post anterior de la serie hablé sobre la programación orientada a objetos y cómo funciona. En este post se entrará más en profundidad al hablar de las clases y objetos. Voy a mostrar cómo declarar una clase y como crear (instanciar) un objeto a través de una clase ya declarada.

Declaración de clases

Antes de poder usar un objeto es preciso declarar una clase, para ello se emplea la keyword class. Una clase se compone de un nombre (distingue mayúsculas), propiedades/atributos y métodos.

En este caso declaramos la clase coche que tiene como atributos marca y modelo y un método que es arrancar().

Crear un objeto

Una vez que la clase está definida, podremos crear un objeto. Normalmente este proceso se conoce como instanciar. Hay 2 formas, una de ellas sería que una variable sea un objeto, el cual en un futuro podremos asignarle las propiedades y llamar a sus métodos.

La otra sería especificando las propiedades/atributos del objeto aunque para este método sera preciso un constructor, el cual hablaré en el post siguiente.

Acceder a un objeto

Ahora que tenemos las clases instanciadas, podremos acceder a sus propiedades y métodos. Por ejemplo, para el primer caso podemos asignarle los atributos y usar su método.

Como puedes ver, para acceder tanto a propiedades como métodos es preciso usar $objeto->atributo o $objeto->método(). Es importante que a la hora de acceder un atributo de una clase, el atributo no lleve $ sino no funcionará.

Cuando declares una clase, es indiferente donde la coloques ya sea antes o después de crear un objeto pero, es una buena práctica que las clases estén al final del archivo.

Clonar objetos

Como sucede en otros lenguajes de programación como en Java, para clonar un objeto no funciona lo siguiente

Esto devolvería

Esto se debe a que en este caso no copias un objeto como sucedería con el valor de una variable sino que pasas la referencia del objeto. De esta manera tanto persona1 como persona2 apuntan al mismo objeto, de ahí que cuando se cambie el nombre de persona2 se vea afectado también persona1, el objeto original.

Pero no pasa nada, PHP proporciona una manera de clonar un objeto y es mediante la keyword clone. Si modificamos la primera parte del código.

Debería de dar como resultado

Y hasta aquí lo una parte sobre  clases y objetos, espero que os sea útil. A seguir picando 🙂