PR1.2.1 - Diferencia entre Clase y Objeto



La Programación Orientada a Objetos, o POO, es un estilo de programación muy popular, debido a su capacidad para manejar aplicaciones más complejas con mucho más código. 

Esto se debe a que organiza los datos en objetos que son comparables a los objetos de la vida real. Clase y objeto son dos términos que se usan comúnmente en programación orientada a objetos. En su forma más básica, los objetos son instancias de clases.

Para usar objetos en un programa, debe declarar las propiedades y los procedimientos en una clase. Para que podamos visualizar esto mejor, analicemos esto usando un ejemplo. Si desea crear un programa que trate con vehículos, deberá crear una clase para vehículos. 

En la clase, crearía variables que contendrán información relevante para los vehículos. Los valores como la capacidad de pasajeros, la velocidad máxima y la capacidad de combustible son típicos junto con procedimientos como el inicio y la parada. 


Después de crear la clase para vehículos, ahora puede crear objetos en su aplicación que se basen en la clase de vehículo. Puede crear un objeto llamado automóvil o motocicleta basado en vehículos. A continuación, puede completar la información relevante sobre el objeto y utilizarlo como lo considere adecuado en su aplicación.

Como ya habrás podido deducir del ejemplo comentado anteriormente, la información que realmente utilizarás en una aplicación se almacena en el objeto, y no en la clase. La clase solo define la estructura de los datos y lo que hace cada procedimiento o función.

Otra característica excelente de las clases es la capacidad de heredar propiedades y procedimientos de otra clase. Las clases que heredan las propiedades de otras clases se denominan subclases. Esto acorta el trabajo necesario para definir otra clase. Si desea definir una clase específica para automóviles, simplemente puede heredar las propiedades y procedimientos en la clase del vehículo, ya que todos los automóviles son vehículos y exhibirán las mismas características. 

No se hace lo mismo con los objetos, ya que realmente no tiene ningún uso práctico heredar globalmente los datos de un objeto. La práctica básica para los programadores es crear una subclase y crear el objeto a partir de la subclase.