定义 S4 类
S3 类仅用一个字符向量表示,与之不同的是,S4 类要求对类和方法有正式定义。为了 定义一个 S4 类,我们需要调用 setClass( ),并提供一种类成员的表示,这种表示被称 为字段(slots)。通过名称和每个字段的类来指定这种表示。本节中,我们使用 S4 类重新 定义 product 对象: setClass("Product", representation(name ="character", price = "numeric", inventory = "integer")) 一旦类被定义了,就可以使用 getSlots( ) 从类定义中获取字段: getSlots("Product") ## name price inventory ## "character" "numeric" "integer" S4 比 S3 更严谨,不仅因为 S4 要求类定义,还因为 R 能够确保新创建的对象实例中成 员的类与原来的类表示是一致的。现在,我们使用 new( ) 创建一个新的 S4 类对象实例, 并且指定字段的取值: laptop <- new("Product", name = "Laptop-A", price = 299, inventory = 100) ## Error in validObject(.Object): invalid class "Product"