R语言 类
类和对象是面向对象编程的基本概念,围绕着现实生活中的实体。R语言中的所有东西都是一个对象。一个 对象 只是一个数据结构,它有一些方法和属性。 类 只是这些对象的一个蓝图或草图。它代表了一种类型的所有对象所共有的属性或方法的集合。
与其他大多数编程语言不同,R有一个三类系统。它们是S3、S4和参考类。
S3类
S3是最简单但也是最流行的OOP系统,它缺乏正式的定义和结构。这种类型的对象只需添加一个属性就可以创建。下面是一个例子,可以让事情变得更清楚。
例子
输出
在S3系统中,方法不属于类。它们属于通用函数。这意味着我们不能在这里创建我们自己的方法,就像我们在其他编程语言如C++或Java中所做的那样。但我们可以定义一个泛型方法(例如打印)应用于我们的对象时的作用。
输出
例子。创建一个用户定义的打印函数
输出
S4类
像C++、Java等其他语言的程序员可能会发现S3与他们对类的正常想法有很大的不同,因为它缺乏类应该提供的结构。S4比S3稍有改进,因为它的对象有一个合适的定义,并且给它的对象提供了一个合适的结构。
例子
输出
如上例所示, setClass() 被用来定义一个类, new() 被用来创建对象。
S4中方法的概念与S3类似,即它们属于通用函数。下面的例子展示了如何创建一个方法。
输出
例子
输出
参考类
参考类是对S4类的一种改进。这里的方法属于类。这些与其他语言的面向对象的类非常相似。
定义一个参考类与定义S4类相似。我们使用 setRefClass() 而不是 setClass() ,使用 “字段 “而不是 “槽”。
例子
输出
现在让我们通过一个例子来看看如何给我们的类添加一些方法。
例子
输出