COBOL
I AM WORKING
I AM PLAYING
I AM LEARNING COBOL
该段客户程序首先创建了一个基于HUMANCLS类的实例。
并且,该程序使用数据部中定义的数据M来引用该实例。
其后,该程序通过数据M实现了HUMANCLS类的实例中3个方法的调用。
关于HUMANCLS类的原型,同前面章节中的一致。
12.4.3 包含实例变量的方法调用
上一小节仅是使用客户程序实现了最基本的方法调用。
在以上所调用的方法中,只包含了一条输出语句,并未涉及到实例中的变量。
本节将在此基础上,讨论如何通过客户程序实现包含有实例变量的方法调用。
例如,在HUMANCLS类中有3个实例变量,可分别表示姓名、年龄和心情状态。
此处要求通过客户程序,分别调用包含有以上3个实例变量的方法。
其中所要实现的功能是能够对实例状态进行设置,并得到该状态的输出信息。
为实现以上功能,首先需要重写HUMANCLS类。
不妨将重写后的HUMANCLS类命名为HUMANCLS2。
重写后的HUMANCLS2类需要包含6个方法。
设置姓名、年龄和心情状态为其中的3个方法。
输出姓名、年龄和心情状态信息为另外的3种方法。
HUMANCLS2类的代码如下。
IDENTIFICATION DIVISION.
CLASS-ID. HUMANCLS2 INHERITS BASECLS.
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
REPOSITORY.
CLASS BASECLS IS 'BASECLS'
CLASS HUMANCLS IS 'HUMANCLS'.
*
IDENTIFICATION DIVISION.
OBJECT.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NAME PIC X(10).
01 AGE PIC 999.
01 MOOD PIC X(5).
PROCEDURE DIVISION.
*
IDENTIFICATION DIVISION.
METHOD-ID. SETNAME.
DATA DIVISION.
LINKAGE SECTION.
01 PASS-NAME PIC X(10).
PROCEDURE DIVISION USING PASS-NAME.
MOVE PASS-NAME TO NAME.
END METHOD SETNAME.
*
IDENTIFICATION DIVISION.
METHOD-ID. SETAGE.
DATA DIVISION.
25312.4 COBOL中的客户程序。