1.定义类中的项目(权限,属性,方法)
简单的来说就是 先定义一个类,该类中有哪些属性,那些方法,访问权限是什么.
class class_name definition.
*设置访问权限,和java/c++一样有三种
public section. "公开权限
"在定义实例属性和静态属性有点语法区别
data gv_char type c length 30 value '实例属性'.
class-data gv_static type c length 20 value '静态属性'.
methods write_char. "实例方法
class-methods write_static. "静态方法
protected section. "保护权限
private section . "私有权限
endclass.
2.定义类中的方法体
这里我们应该注意的是:必须要有方法声明,再进行方法的实例化.先方法的声明,再实例化.
method write_char.
write: / '实例方法输出的实例属性', gv_char.
endmethod.
method write_static.
write: / '静态方法输出静态属性',gv_static.
endmethod.
3.声明一个对象
lcl_object 就相当于lcl_compt 的一个副本,之后对刚才我们定义的 lcl_compt 这个类使用是用副本lcl_object 来进行的.
静态方法/属性是不要进行对象的声明,所以也不需要实例化对象,直接调用即可
data lcl_object type ref to lcl_compt.
4.实例化对象
上面说过我们用"副本"来使用该类的具体功能,当然我们在实例化对象的时候也是使用"副本"进行.
"开始事件,相当于java/c++中的main函数,必须要有的
start-of-selection.
create object lcl_object. "实例化对象
DATA(lo_object) = NEW class_name ( ) . "这样也可以创建一个实例化对象,调用方法的方式也和上面的一样
5.调用
最后就是对实例化对象中的方法进行调用.
注意:静态方法的调用和实例化方法的调用的语法区别.
1.实例化对象的方法调用
call merhod lcl_object->write_char.
2.静态方法的调用
call method lcl_compt=>write_static.
当我们在声明对象的时候是可以为同一个类进行多次声明,但每次的声明只能实例化一个对象,多次声明可以对次实例化对象.
实例化对象后,对象与对象之间是相互独立的,各站一份内存空间