たとえば、次の INVOKE 文は、入力文字列 obj-string に対して replace メソッドを呼び出し、結果を obj-string に戻します。メソッド名の大文字と小文字は .NET と JVM で異なるため注意してください。.NET では replace、JVM では Replace になります。
invoke obj-string::replace("Some" "New") *> .NET invoke obj-string::Replace("Some" "New") *> JVM display obj-string
同様に、次の SET 文は、暗黙的なプロパティ設定メソッドを用いる文内呼び出し構文を使用します。この例の文は、入力文字列 obj-string に対して Replace() メソッドを呼び出し、結果を aString 変数に設定します。
set aString to obj-string::replace("Some" "New") *> .NET set aString to obj-string::Replace("Some" "New") *> JVM display aString
また、文内呼び出し構文を使用してプロパティにアクセスできます。次の例では、文字列 myString の Length プロパティにアクセスし、このプロパティが表示されます。
display "Total characters is " myString::Length
呼び出しコードと同じコンパイルのメソッド (静的メソッドまたはインスタンス メソッドのいずれか) を次のように呼び出すことができます。
静的メソッドを呼び出すには、クラス名の後に :: を続けてメソッド名を指定します。たとえば、次の INVOKE 文の SimpleClass::StaticMethod がこれに当たります。
invoke type SimpleClass::StaticMethod ... class-id SimpleClass. method-id StaticMethod static. display "In static method" end method. end class.
同じコンパイル単位内のインスタンス メソッドを呼び出すには、最初にオブジェクトをインスタンス化します。次に、インスタンス オブジェクトの後に :: を続けてメソッド名を指定します。たとえば、次の INVOKE 文の mySimpleObj::InstanceMethod がこれに当たります。
01 mySimpleObj type SimpleClass. set mySimpleObj to new SimpleClass("Hello") invoke mySimpleObj::InstanceMethod ... class-id SimpleClass. 01 thisString string. method-id New. procedure division using by value aString as string. set thisString to aString end method. method-id InstanceMethod. procedure division. display "In instance method" display "Instance data is " thisString end method.
コアのサンプルも参照してください。このサンプルは、 Start > All Programs > Micro Focus Visual COBOL > Samples, under COBOL for .NET . に用意されています。