“$”和“@”
它们是两个不同的面向对象系统的提取变量的符号
- S3对象通常是列表,使用$索引
- S4对象的不同slot使用@索引
面向对象编程(Object Oriented Programming,OOP)
面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化。
以上是百度百科的解释,我其实也不太懂
我个人觉得这个概念有点抽象。具体来说就像是一个函数,我们利用R或者其他时候,复杂的函数计算过程通常已经被计算机人员编写成简单的函数。当我们使用时,只需要知道它是干嘛的,有什么作用,而具体的运算过程我们并不会在意。这样增加了可重复性,也减少了非专业人员的负担。
请专业一点
我要开始认真了。。。。。。。。
特点:
- 封装性
以前觉得高大上、理解不了的东西,现在必须了解了。
对象是程序的基本单元,面向对象编程将程序和数据封装其中。
封装是指将一个计算机系统中的数据以及与这个数据相关的一切操作语(即描述每一个对象的属性以及其行为的程序代码)组装到一起,一并封装在一个有机的实体中,把它们封装在一个“模块”中,也就是一个类中,为软件结构的相关部件所具有的模块性提供良好的基础。在面向对象技术的相关原理以及程序语言中,封装的最基本单位是对象,而使得软件结构的相关部件的实现“高内聚、低耦合”的“最佳状态”便是面向对象技术的封装性所需要实现的最基本的目标。 - 继承性
指的是两种或者两种以上的类之间的联系与区别。继承,顾名思义,是后者延续前者的某些方面的特点,而在面向对象技术则是指一个对象针对于另一个对象的某些独有的特点、能力进行复制或者延续。 - 多态性
从宏观的角度来讲,多态性是指在面向对象技术中,当不同的多个对象同时接收到同一个完全相同的消息之后,所表现出来的动作是各不相同的,具有多种形态;从微观的角度来讲,多态性是指在一组对象的一个类中,面向对象技术可以使用相同的调用方式来对相同的函数名进行调用,即便这若干个具有相同函数名的函数所表示的函数是不同的。
R语言中现有的S3类、S4类及S6类等都可以实现面向对象的编程范式