Logo

title: 'Introducción a la Programación Orientada a Objetos en COBOL' date: '2023-04-01'

Programación Orientada a Objetos en COBOL

La Programación Orientada a Objetos (POO) es un paradigma de programación que utiliza objetos y sus interacciones para diseñar aplicaciones y programas informáticos. COBOL, el lenguaje común orientado a negocios, ha evolucionado desde su creación en 1959 para adoptar características de la POO. Aunque muchos asocian COBOL con programación estructurada, desde el estándar COBOL 2002, es posible aplicar los principios de la POO en COBOL.

Conceptos Básicos de POO

Antes de adentrarnos en COBOL, revisemos conceptos fundamentales de la POO:

COBOL y la POO

En COBOL, la implementación de la POO es a través de la definición de clases, métodos, y propiedades. A continuación, veremos cómo se estructura esto en COBOL.

Definiendo una Clase en COBOL

Para definir una clase en COBOL, se utiliza la palabra reservada CLASS-ID. Los métodos y propiedades se definen dentro del cuerpo de la clase.

      IDENTIFICATION DIVISION.
      CLASS-ID. MiClase PUBLIC.
      DATA DIVISION.
      WORKING-STORAGE SECTION.
      01 MiPropiedad PIC 9(2).

      METHOD-ID. MiMetodo PUBLIC.
      PROCEDURE DIVISION.
          DISPLAY "Este es un método de MiClase".
      END METHOD MiMetodo.
      END CLASS MiClase.

Instanciando Objetos

Para crear un objeto, se utiliza la palabra reservada NEW, seguida del nombre de la clase.

      IDENTIFICATION DIVISION.
      PROGRAM-ID. ProgramaPrincipal.
      DATA DIVISION.
      WORKING-STORAGE SECTION.
      01 MiObjeto OBJECT REFERENCE MiClase.

      PROCEDURE DIVISION.
          SET MiObjeto TO NEW MiClase
          INVOKE MiObjeto "MiMetodo".
      END PROGRAM ProgramaPrincipal.

Herencia

La herencia se maneja en COBOL con la palabra reservada INHERITS FROM.

      IDENTIFICATION DIVISION.
      CLASS-ID. ClaseHija INHERITS FROM MiClase PUBLIC.
      END CLASS ClaseHija.

Encapsulamiento

El encapsulamiento en COBOL se logra mediante el uso de las palabras reservadas PRIVATE y PUBLIC para controlar el acceso a métodos y propiedades de una clase.

Polimorfismo

El polimorfismo se gestiona usando el mismo identificador de método en la clase base y en la clase derivada.

Ejemplo Real de COBOL y POO

Vamos a definir una clase CuentaBancaria y una clase CuentaAhorros que hereda de CuentaBancaria.

      IDENTIFICATION DIVISION.
      CLASS-ID. CuentaBancaria PUBLIC.
      DATA DIVISION.
      WORKING-STORAGE SECTION.
      01 Saldo PIC 9(8)V99 VALUE ZEROS.

      METHOD-ID. Depositar PUBLIC.
      LINKAGE SECTION.
      01 monto PIC 9(8)V99.
      PROCEDURE DIVISION USING monto.
          ADD monto TO Saldo.
      END METHOD Depositar.

      METHOD-ID. Retirar PUBLIC.
      LINKAGE SECTION.
      01 monto PIC 9(8)V99.
      PROCEDURE DIVISION USING monto.
          SUBTRACT monto FROM Saldo.
      END METHOD Retirar.

      END CLASS CuentaBancaria.

      IDENTIFICATION DIVISION.
      CLASS-ID. CuentaAhorros INHERITS FROM CuentaBancaria PUBLIC.
      DATA DIVISION.
      WORKING-STORAGE SECTION.
      01 TasaInteres PIC V9(2) VALUE 0.05.

      METHOD-ID. AplicarInteres PUBLIC.
      PROCEDURE DIVISION.
          COMPUTE Saldo = Saldo + (Saldo * TasaInteres).
      END METHOD AplicarInteres.

      END CLASS CuentaAhorros.

En este ejemplo, CuentaAhorros hereda los métodos Depositar y Retirar de CuentaBancaria y agrega un método AplicarInteres.

Conclusión y Recursos Adicionales

La Programación Orientada a Objetos en COBOL permite modernizar aplicaciones legado y facilitar la integración con sistemas y tecnologías actuales. Aunque COBOL no es tan conocido por su uso en POO, su capacidad para adaptarse a este paradigma demuestra la versatilidad y la evolución del lenguaje.

Para aprender más sobre POO en COBOL, puedes consultar los siguientes recursos:

Este artículo es solo una introducción a la POO en COBOL y te animamos a explorar más a fondo este interesante paradigma de programación en un lenguaje que ha demostrado su resistencia y adaptabilidad a lo largo de los años.

© Copyright 2024, todos los derechos reservados.