Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
💻 COBOL

COBOL Object-Oriented Basics

Advanced 🕑 20 min read 👁 0 views

COBOL Object-Oriented Basics

Enterprise COBOL supports object-oriented programming with classes, methods, and inheritance.

Class Definition

```cobol CLASS-ID. ClassName INHERITS Base. REPOSITORY. CLASS Base IS 'Base'. CLASS ClassName IS 'ClassName'. ```

Instance Data

```cobol OBJECT. DATA DIVISION. WORKING-STORAGE SECTION. 01 instance-variable PIC X(20). ```

Methods

```cobol METHOD-ID. methodName. DATA DIVISION. LINKAGE SECTION. 01 param PIC X(10). PROCEDURE DIVISION USING param. ... END METHOD methodName. ```

Factory vs Object

  • FACTORY: Class methods (like static)
  • OBJECT: Instance methods

Creating Objects

```cobol INVOKE ClassName 'new' RETURNING obj-ref. ```

Invoking Methods

```cobol INVOKE obj-ref 'methodName' USING param. ```

Code Example

       CLASS-ID. Employee INHERITS Base.
       REPOSITORY.
           CLASS Base IS 'Base'.
       OBJECT.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 emp-name PIC X(30).
       01 emp-salary PIC 9(7)V99.
       
       PROCEDURE DIVISION.
       METHOD-ID. setName.
       DATA DIVISION.
       LINKAGE SECTION.
       01 ls-name PIC X(30).
       PROCEDURE DIVISION USING ls-name.
           MOVE ls-name TO emp-name.
           GOBACK.
       END METHOD setName.
       
       METHOD-ID. getSalary.
       DATA DIVISION.
       LINKAGE SECTION.
       01 ls-salary PIC 9(7)V99.
       PROCEDURE DIVISION RETURNING ls-salary.
           MOVE emp-salary TO ls-salary.
           GOBACK.
       END METHOD getSalary.
       END OBJECT.
       END CLASS Employee.