Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Programación Orientada A Objetos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

Programación Orientada a Objetos

La Programación Orientada a Objetos (POO) no es más que un nuevo


paradigma de programación. Tomando en cuenta que la Real
Academia de la Lengua Española (RAE), define como paradigma: "una
teoría
o conjunto de teorías cuyo núcleo central se acepta sin cuestionar y
que suministra la base y modelo para resolver problemas y avanzar en
el conocimiento." (RAE, 2015), el paradigma de la programación
orientada a objetos es una forma diferente de programar, un modelo a
seguir para solucionar problemas a través de la informática.

La POO tiene como su más importante característica la reutilización del


código, mismo que debe ser simple y lo suficientemente comprobado
antes de estar disponible para ser utilizado. Hablar de reutilización de
código, significa que una vez que se realiza la implementación, esta
solución debe ser lo más parametrizable posible para que sea general
y por lo tanto pueda ser invocado desde la mayor cantidad de casos
posibles en los que sea requerido.

Por la misma razón, debe ser simple y resolver un problema específico,


es decir es necesario dividir un problema en pequeños subproblemas
los cuales serán las funcionalidades (métodos) del objeto; por ejemplo,
para un sistema de facturación se necesitará crear una clase Detalle, y
se creará un objeto detalle, que deberá calcular el acumulado de las
compras realizadas (método CalcularSubtotal), calcular el descuento
que se aplica bajo ciertas condiciones (método CalcularDescuento),
Programación Orientada a Objetos

calcular el impuesto que se aplica sobre las compras realizadas


(método CalcularImpuesto), calcular el total a pagar (método
CalcularTotal). La siguiente figura ilustra dos de las clases que pueden
crearse en el sistema de facturación, y en color azul se muestran los
cálculos que son las funcionalidades de la clase Detalle.

También se ha señalado la clase Factura, que representa los datos de


la factura (atributos: nroFactura, CICliente, Fecha, entre otros) y como
funcionalidad, se debería considerar el hecho de generar
automáticamente el número de factura).

Esto significa que bajo esta modalidad de programación, se crearán


mucho más líneas de código que las que se crearían en un modelo de
programación secuencial, sin embargo este aumento de codificación
asegurará un código más sencillo y por lo tanto más seguro y validado.

Como se observa, la POO utiliza una terminología diferente a la utilizada


hasta el momento, entre los principales nuevos términos están: Clases,
Objetos, Atributos, Métodos, entre otros, mismos que ser irán
describiendo a continuación.

El uso de objetos en la programación está relacionado con el hecho de


que el mundo está constituido de objetos que interactúan entre sí, todo
aquello que está en la naturaleza es un objeto y cada uno está formado
de otros objetos más pequeños; pero ¿cómo definir un objeto? Un
objeto es un sustantivo en singular, si se recuerda que un sustantivo es
aquello que existe: una persona, animal, planta o cosa, entonces todo
lo que se incluye en esta definición es un objeto.

Ejemplo: un computador, un rectángulo, una persona, un libro, un carro,


un perro, una factura, una cuenta bancaria.
Programación Orientada a Objetos

Identificar objetos concretos es relativamente sencillo, sin embargo


identificar objetos abstractos requiere un poco de práctica e intuición
como por ejemplo, transacción de una cuenta bancaria, detalle de una
factura, que son objetos no tan evidentes, pero que son los que en la
mayoría de casos serán los objetos que deberán ser implementados en
programas, ya que interactuarán con los objetos más evidentes como
la factura, o la cuenta bancaria en el caso de la transacción.

Atributos
Cada objeto tiene unas características que le identifican como tal,
así:

CARACTERÍSTICA CARACTERÍSTICA
OBJETO OBJETO
S S
lados placa
rectángul
ángulos carro color
o
marca
nombre nroFactura
persona cédula factura fecha
fecha Nacimiento totalPago
título nroFactura
detalleFactur
libro autor codProducto
a
año cantidad
Programación Orientada a Objetos

Para identificar las características de un objeto, se puede


utilizar la palabra TIENE. Ejemplo:

Un rectángulo tiene: lados y ángulos;

Una persona tiene cédula, nombre, fecha de nacimiento;

Un libro tiene: título, autor, año;

Un carro tiene: placa, color, modelo;

Una factura tiene: nroFactura, fecha, totalPago

Un detalle tiene: nroFactura, producto, cantidad

A estas características se les denomina también propiedades y


técnicamente se conocen como ATRIBUTOS del objeto.

Métodos

Sobre los objetos es posible realizar acciones (operaciones, cálculos),


para lo cual podría utilizarse la pregunta, ¿Qué se puede hacer sobre
el objeto X? Las respuestas a esta interrogante facilitarán la
identificación de las funcionalidades de los objetos. Si se recuerda
que un verbo es una palabra que denota acción, entonces las
funcionalidades se especificarán con verbos. Técnicamente se
denominan MÉTODOS.

OBJETO FUNCIONALIDADES
CalcularArea
rectángulo CalcularPerimetro

CalcularIVA
detalleFactura CalcularDescuento
CalcularTotal
Depositar
transacción Retirar
CalcularIntereses
Programación Orientada a Objetos

Clase

Dado que pueden existir varios objetos del mismo tipo, con las mismas
características y funcionalidades, se crean las clases, que representan
los modelos ideales de un objeto, una plantilla a partir de la cual se
pueden crear objetos que compartan esas características y
funcionalidades; así, tomando en cuenta algunos de los ejemplos de
objetos mencionados anteriormente, algunas clases serían: Clase
Transacción, Clase Rectángulo, Clase Persona, Clase Factura; esto
significa que cada vez que se requiera una transacción se creará un
objeto basado en la plantilla Transacción; cuando se requiera un objeto
rectángulo se creará a partir de la plantilla Rectángulo; y así con cada
uno de los objetos, siempre que se requiera un objeto de un tipo
específico con unas características y funcionalidades se deberá crear
una plantilla (clase) que será el modelo para todos los objetos de ese
tipo. Luego cada objeto será personalizado, al recibir valores para cada
uno de los atributos especificados en su plantilla.

A la acción de crear objetos, se denomina instanciar una clase;


relacionando con los conocimientos adquiridos hasta ahora, una Clase
se puede considerar como un nuevo tipo de datos, personalizado,
creado por el programador, y la variable de ese nuevo tipo de dato, es
el objeto.
Programación Orientada a Objetos

Factura fact;

Factura es la clase y fact es el objeto de la clase Factura. Cuando se le


asigne valores a ese objeto fact, en ese momento se realiza la
instanciación.

Las clases tienen una parte privada y una parte pública.

Diagrama de Clase

Un Diagrama de Clase es una representación gráfica de una clase, en


el que se especifica el nombre de la clase, sus atributos y métodos;
básicamente es uno de los elementos de un Diagrama de Clases en el
que se muestran además las relaciones entre las clases.

Un Diagrama de Clase, facilita en gran manera las acciones al momento


de implementar, para a través de la observación reconocer la forma de
acceso a cada uno de los elementos de la clase, es el diagrama más
sencillo que deberá realizarse al incursionar en la Programación
Orientada a Objetos.

El siguiente gráfico es una representación de un diagrama de clase.


Programación Orientada a Objetos

Pilares

La POO tiene varios pilares para asegurar la simplicidad de código y su


reutilización, y aunque diversos autores señalan diversos pilares, en
este documento se considerarán los cuatro que son comunes en la
mayoría de textos, estos son: Abstracción, Encapsulamiento, Herencia
y Polimorfismo, las dos primeras están más relacionadas con la
búsqueda de códigos simples y las dos siguientes con la reutilización.

Abstracción

Es el pilar de la POO, que permite identificar las características y


comportamientos de un objeto y con los cuales se construirá la clase
(plantilla). Esto quiere decir que a través de este pilar o fundamento es
posible reconocer los atributos y métodos de un objeto.

La imagen muestra en texto de color negro algunas de las


características del objeto: color, tamaño, marca, son características
porque todos los controles pueden tenerlas y cada objeto de este tipo
tomará valores que le identifiquen; el objeto de la imagen tiene los
siguientes valores:

color: negro

tamaño: 15

marca: samsung
Programación Orientada a Objetos

De igual forma, se identifican los comportamientos que en la imagen


aparecen como textos de color blanco

Encapsulamiento

Es la característica de la POO que permite el ocultamiento de la


complejidad del código, pertenece a la parte privada de la clase y que
no puede ser vista desde ningún otro programa.

En el gráfico se representa como la complejidad del código queda oculta


dentro de una caja fuerte impidiendo que quien lo utilice sin observar
los detalles de cada una de las líneas que permiten el cumplimiento de
una acción específica.

En realidad, el encapsulamiento está relacionado con el acceso a un


código desde el código de otra clase; sin embargo en términos
generales, esta representación gráfica es conveniente para comprender
el concepto de encapsulamiento.
Programación Orientada a Objetos

Herencia

Es el pilar más fuerte que asegura la reutilización de código, ya que a


partir de esta característica es posible reutilizar (heredar) las
características y comportamientos de una clase superior llamada clase
padre, a sus clases hijas, denominadas clases derivadas. Esto implica
que una vez desarrollado el código de una clase base, su código puede
ser reutilizado por las clases derivadas.

En el gráfico, Persona es la clase Padre, que tiene como características:


CI, nombre, dirección, fechaNac, genero, entre otros; y Estudiante y
Profesor son las clases "Hijas", que heredan las características de la
clase padre y a su vez establecen las propias de su clase. Esto implica
que no se deberán volver a definir, sino que por el simple hecho de
heredarlas ya es posible utilizarlas y en el caso de los comportamientos
ejecutarlos o modificarlos si es necesario.
Programación Orientada a Objetos

Polimorfismo

A través de esta característica es posible definir varios métodos o


comportamientos de un objeto bajo un mismo nombre, de forma tal que
es posible modificar los parámetros del método, o reescribir su
funcionamiento, o incrementar más funcionalidades a un método.

En el gráfico se observa que todas son figuras geométricas por lo que


pueden incluirse en una clase Padre, por lo que la clase deberá tener el
método Área(), este método podrá ser reescrito tantas veces como
figuras existan, con los parámetros correspondientes en cada clase
derivada: Circulo, Triangulo y Rectángulo, o reescrita en la clase base.

También podría gustarte