Logo

什么是类及其类型?

在本节课中,我们将学习类及其类型的概念,并了解如何在R语言中创建它们。

概念

什么是类及其类型?

在本节课中,我们将学习类及其类型的概念,并了解如何在R语言中创建它们。

1# 创建学生列表 2studentList <- list(name = "John", gender = "Male", semester = 4) 3 4# 设置类名 5class(studentList) <- "Student" 6 7# 创建并调用对象 8studentList
1# "methods" 包实现当一个或多个参数是这些类的对象时的功能计算。 2# 我们在这里添加它是为了使用 setClass()。 3library(methods) 4 5# 定义 S4 类 6setClass("person", slots = list(name = "character", age = "numeric")) 7 8# 使用 new() 创建对象,传入类名和槽值 9personList <- new("person", name = "Adam", age = 25) 10personList
1# 使用 setMethod 设置方法 2setMethod("show", "person", 3function(object) 4{ 5 cat("该人的名字是 ", object@name, ",年龄:", object@age) 6} 7) 8personList
1# "methods" 包实现当一个或多个参数是这些类的对象时的功能计算。 2# 我们在这里添加它是为了使用 setRefClass()。 3library(methods) 4 5# setRefClass 返回一个生成器 6person <- setRefClass("person", fields = list(name = "character", 7 age = "numeric")) 8 9# 现在创建对象,使用生成器 10personList <- person(name = "Adam", age = 72) 11personList
1# "methods" 包实现当一个或多个参数是这些类的对象时的功能计算。 2# 我们在这里添加它是为了使用 setRefClass()。 3library(methods) 4 5person <- setRefClass("person", fields = list(name = "character", 6 age = "numeric"), methods = list( 7 update_age = function() 8 { 9 # 我们使用全局赋值操作符 (<<-) 10 # 因为变量 age 在此函数的作用域之外。 11 age <<- age + 1 12 } 13 ) 14 ) 15personList <- person(name = "Adam", age = 72) 16 17# 打印 age 的值 18personList$age 19 20# 更新 age,然后再次打印 21personList$update_age() 22personList$age
S3 类S4 类引用类
无正式定义通过 setClass() 方法定义类通过 setRefClass() 方法定义类
通过设置类属性创建对象通过 new() 方法创建对象使用生成器函数创建对象
使用 $ 访问属性使用 @ 访问属性使用 $ 访问属性
方法是泛型函数的一部分方法是泛型函数的一部分方法是类的成员

R中的异常处理

R 编程挑战