Introducción
La programación orientada a
objetos (POO) o por sus siglas en inglés (OOP) es un paradigma que enfoca la
programación como si trabajásemos con objetos del mundo real, esto es muy
atractivo desde el punto de vista de la clasificación y análisis de las partes
que integrarán un programa pues es posible pensar en objetos del mundo real y
sus interacciones entre ellos.
Así pues el concepto más
importante de dicho paradigma es la Clase
que establece la definición genérica de un Objeto
o Instancia dentro de un programa,
en el mundo real una clase es un Coche, un Animal, una Factura o cualquier cosa
tangible o intangible del mundo real.
El objeto o instancia es la
ocurrencia concreta de la clase. Así, mi coche es un objeto de la clase coche,
un coche tiene 4 ruedas, un volante, un motor, faros, etc, etc. Mi coche
particular es de un modelo concreto, es rojo o amarillo, tiene x kilómetros
pero hay muchos coches concretos, cada uno con sus atributos, así una clase es
un Molde que establece las Propiedades
(color, marca, modelo) de cada coche concreto, objeto.
Además de propiedades un
coche puede interaccionar con el mundo, por ejemplo puede acelerar, frenar,
girar a la derecha a izquierda, este tipo de interacción se llama Método o Función y se define en cada clase junto con las propiedades.
De este modo tenemos la
clase coche con las propiedades color, marca, modelo, etc y los métodos acelerar,
frenar, girar. Todo esto se encapsula y sirve de molde para implementar
diferentes objetos u ocurrencias concretas, coche azul marca X que acelera de 0
a 100 en 7 segundos, etc, etc.
La OOP nos permite pensar en
el mundo real y diseñar inmediatamente el código que maneje cualquier
información. Podemos pensar en una clase
Factura que tiene unas propiedades: Importe, datos de cliente, datos de
cabecera, etc y unos métodos: Imprimir, borrar, grabar, etc.
Toda esta operativa se
programa en un mismo módulo (Encapsulación)
y ya no es necesario tocar pues permite
crear un código de cliente que opere con los objetos de cada clase sin necesidad de tocar el
código de las clases.
Las clases soportan la Herencia, Un Animal puede ser un perro
o un gato, del mimo modo que la clase animal puede derivarse en otras clases perro
o gato que generen propiedades concretas de perro o gato pero posean los mismos
métodos (como comer) aunque definidos de forma diferente.(Polimorfismo)
Los métodos pueden cambiar
los atributos o propiedades de un objeto, así por ejemplo si tengo Un objeto
cuadrado con un valor del lado y uso el método crecer puedo cambiar su valor
del lado.
La encapsulación permite la
reutilización del código, la clase Imprimir, si está bien diseñada se puede
utilizar para imprimir cualquier cosa de tal modo que al programar ya nunca
tendremos que programar de nuevo dicha operativa y bastará con escribir NombreObjeto.Imprimir.
Resumiendo: Un programa
orientado a objetos tiene una serie de Moldes (Clases) que contienen la información genérica de cada objeto, (Métodos y Propiedades) dentro de un
mismo contenedor (Encapsulación),
las clases permiten la herencia y
por tanto definir los mismos métodos de diferente forma (Polimorfismo). Cada Ocurrencia concreta de una clase se llama objeto o Instancia y representa un
objeto concreto del mundo real como un coche azul o una factura del cliente X
por importe Y.
No hay comentarios:
Publicar un comentario