我是R语言的新手,所以我认为我应该像Java那样说明这个要求 现在我们知道R可以支持OOP,所以我想从ClassA调用ClassB方法
ClassB.java
public class ClassB {
public void printB() {
System.out.println("a");
}
}
ClassA.java
//if they are in the same package, use it directly
//or we must import ClassB explicitly
public class ClassA {
public void invokeB() {
ClassB b = new ClassB();
b.printB();
}
}
那么如何用R语言实现这一目标呢?
答案 0 :(得分:0)
这就是如何在方法调度的S3系统中完成类的分配。它不是真正的OOP,因为Java用户理解它。 proto
包提供了一个更接近Java风格OOP的框架。方法调度的S4系统提供了多参数签名匹配和更加规范的方法......大多数R用户都无法理解。
newItem <- "bbb"
class(newItem) <- "newClass"
print(newItem)
#[1] "bbb"
#attr(,"class")
#[1] "newClass"
print.newClass <- function(n) cat("this is of the newClass", n)
print(newItem)
#this is of the newClass bbb
otherItem <- "xxxx"
inherits(otherItem, "newClass")
#[1] FALSE
class(otherItem) <- c( class(otherItem), "newClass")
print(otherItem)
#this is of the newClass xxxx
当你谈论“课程”处于“不同档案”时,你可能需要研究包装结构以及NAMESPACE的护理和喂养。您可以附加包以及通过命名空间加载。 R函数可能有点类似于Java类(在英语中使用相当松散,但不是Java或R)但在R中,术语“类”指的是用于调度函数的对象的属性。