OOP | Clases y Objetos, diferenciación

    Antes de comenzar con las explicaciones sobre la diferencia que existe entre una Clase y un Objeto, vamos a crear un archivo en el que podamos realizar diferentes pruebas, que nos permitirán entender mejor los conceptos que iremos explicando.

    En mi caso el nombre de mi archivo será pruebas.php y estará en la carpeta raiz. Una vez creado el archivo, hagamos print, para comprobar que el archivo funciona correctamente si lo abrimos en el navegador.

OOP PHP | www.drupaladicto.com - Consultor especializado en drupal y symfony

OOP PHP | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Ahora que ya hemos comprobado que todo funciona correctamente, intentaré explicarte con un ejemplo práctico, el uso de las clases y objetos. Lo primero que tendríamos que saber es que cómo se define una clase.

   Cómo definimos una Clase

     Para definir una clase de PHP, lo único que hará falta es escribir la palabra reservada classs, seguida del nombre de nuestra clase; para nombrarla, podremos utilizar casi todo tipo de valor alfanumérico; a continuación abriremos y cerraremos llaves. Todo lo que incluyamos dentro de estas llaves, será el contenido de nuestra clase.

class Vehiculo 
{

}

     El funcionamiento de una clase es muy parecido al de un array, sólo que en lugar de usar Clave => Valor, en una clase utilizaremos Propiedades.

     Si añadimos nuestra clase, a nuestro archivo de pruebas.php y guardamos los cambios, podremos comprobar que tendremos el mismo resultado, ya que nuestra clase todavía no tiene contenido y no provoca ningún error o cambio en al presentación de nuestro código actual.

  Qué son objetos y cómo podemos crearlos

      Los objetos son instancias de una clase, esto significa, que cuando tenemos una clase definida, podremos instanciar tantos objetos como nos hagan falta, utilzando como punto de partida, la clase que hemos definido.

     Para definir un nuevo objeto, lo único que tendremos que hacer es, una vez definida nuesta clase, añadiremos una variable con el nombre para nuestro objeto, y como valor de éste, agregaremos la palabra reservada new, seguida del nombre de nuestra clase y luego, abriremos y cerraremos paréntesis. Terminamos la definición de nuestro objeto, cerrando con punto y coma. 

     Provemos un ejemplo, vamos a crear el objeto de la clase Vehículo:

<?php

// Definimos la clase vehiculo
class Vehiculo
{

}

// Ejemplo de un objeto
$miNuevoVehiculo = new Vehiculo();

     Si añadimos nuestra clase, a nuestro archivo de pruebas.php y guardamos los cambios, podremos comprobar que tendremos el mismo resultado, ya que nuestro objeto todavía no tiene ninguna funcionalidad y, por lo tanto, no provoca ningún error ni cambio en el resto del código.

   Comparativa entre Array, Clase y Objeto

      Cuando trabajamos con Arrays (Arreglos), podemos añadir dentro de este cualquier tipo de dato, con la estructura Clave => Valor, pero no nos permitirá configurar un tipo de datos específico, para rellenar el apartado de los valores. Esto significa que no tendríamos control para evitar la inclusión de datos no permitidos que pudieran hacer fallar nuestra aplicación.

     El Array, al igual que la Clase, funcionan como una plantilla en blanco, donde podremos incluir varios datos.

     La gran diferencia de una Clase, con respecto al Array, es que dentro de la clase tendrá que registrarse previamente, todo lo que podrá ejecutarse dentro de ésta.

     Los Objetos, son estas instancias de la Clase, o sea, en la clase de definen las Propiedades y los Métodos, que estaremos autorizados a utilizar en cada nuevo objeto que vayamos creando, a partir de nuestra clase. 

OOP PHP | www.drupaladicto.com - Consultor especializado en drupal y symfony

   Ejemplo Gráfico sobre Clase y Objeto

       Imaginemos que somos vendedores de vehículos nuevos y usados, y que necesitaremos crear un programa en el que podamos registrar y actualizar fácilmente, todo nuesro inventario de vehículos. 

      Partiendo del gráfico y el contenido explicado anteriormente, en este ejemplo, crearemos nuestra Plantilla o Clase, a la que llamaremos Vehículo, y pondremos dentro todas sus Características, Propiedades de la clase.

     Una vez hayamos definido todos los elementos a los cuales podremos acceder, entonces sólo nos faltará crear las diferentes instancias de esta clase, que correspondería, a cada uno de los vehículos que iremos agregando o eliminando de nuestro inventario.

OOP PHP | www.drupaladicto.com - Consultor especializado en drupal y symfony

OOP PHP | www.drupaladicto.com - Consultor especializado en drupal y symfony

OOP PHP | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Ahora que ya hemos entendido la diferencia entre Array, Clases y Objetos, es el momento de escribir código; así que en nuestro archivo de ejemplo crearemos dos instancias de la clase Vehiculo y lo imprimiremos en pantalla.

<?php

// Definimos la clase
class Vehiculo
{
  public $marca;
}

// Ejemplo de un objeto
$miNuevoVehiculo = new Vehiculo();
$miNuevoVehiculo->marca = 'Mercedes Benz';

// Imprimimos en pantalla nuestros primeros objeto
print "La marca de mi vehículo es: " . $miNuevoVehiculo->marca;

 

OOP PHP | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Repasando: La diferencia fundamental entre un Array y una Clase, es que para comprobar los valores dentro de un array, tendríamos que ejecutar un vardump(); sin embardo, cuando trabajamos con Clases, ya sabremos su contenido, antes de que podamos incluso crear los objetos. Piensa en una clase como el esqueleto o esquema que debemos seguir, para obtener resutados coherentes en el desarrollo de nuestra aplicación.

     Otras de las ventajas de trabajar con Clases, es que dentro de ellas, podremos ejecutar funciones, también conocidas como Métodos. Eso lo explicaremos en el siguiente capítulo.

    Felicidades!!!, ya podrás presumir de que al menos conoces uno de los fundamentos de la Programación Orientada a Objetos, al definición de clases y la creación de Objetos a partir de ella; así que estás prepárate para el siguiente paso: Los Métodos