求剧情
R的极客理想——高级开发篇 · 第十九节

《R的极客理想——高级开发篇》第十九节

本节讲解R6面向对象系统的若干特性。self指实例对象本身,private是一个子环境空间,用它保存私有成员,使外部无法访问,这是R包开发常用技巧。

本节讲解R6面向对象系统的若干特性。self指实例对象本身,private是一个子环境空间,用它保存私有成员,使外部无法访问,这是R包开发常用技巧。主动绑定通过active参数把函数访问表现为属性访问,属公有成员。R6支持继承,子类可直接使用父类方法;子类定义同名方法会覆盖父类实现,用super对象可调用父类方法。属性赋值为另一对象时保存的是引用而非实例,可实现类似Java静态属性的共享,但通过initialize赋值无法共享。portable参数区分可移植与不可移植类型,前者支持跨包继承、须用self和private访问成员,后者可直接用变量。R6还支持用$set()动态增改成员、覆盖print()自定义输出、用class参数决定对象存为S3对象还是环境空间、用lock参数锁定环境空间防止篡改。最后以图书分类案例演示封装、继承与多态:父类book定义默认九折,R、Java子类各自覆盖打折规则,R图书可折上折,验证了R6的面向对象能力。

‹ 上一章目录下一章 ›

全部 27 章