`
好好学习-天天向上
  • 浏览: 36303 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

何为面向对象(Ruby版)

 
阅读更多

   最近在学习Ruby,是一门纯面向对象的语言,自己也对其有了一定的理解,现与大家共享。

   这次主要时分享一下几个主要的概念,及其相对应的小例子。

    类(class):类是对概念的定义。如 :

class Person
class Snake
    类可以从其他类中继承相应的功能特性,但仍有其自身独特的功能特性。

 

    对象:是类的单个实例(或某些情况下是类自身的实例)。Person类的实例时单个的人,Dog类的实例时单个的狗。

    面向对象:时一种方法,运用类和对象对真实世界的概念进行建模。

    变量:变量时单个对象的占位符,这个对象可以时数字,字符串,列表,或者时类的实例。

    方法:代表类和或对象中的一组代码(包含多个命令和语句)。如:

class Dog
     def bark
          puts "Woof!"
     end
end

   这就是Dog类中有一个bark方法,调用后便会在屏幕上打印出 Woof! 字样。

   参数:包含在括号中传递给方法的数据(或在某些情况下,跟在方法名之后,不加括号,如: puts “TEST”)

    Kernel模块:某些方法无须类名即可使用,如 puts,这些方法通常都是内置的常用方法,与任何类都没有明显的关系。许多此类方法都包含在Ruby的Kernel模块中,该模块提供的功能可以从任何位置的Ruby代码中调用,无须显式的引用模块名。

   最后给大家一个简单的例子:

class  Person     #这是创建了一个Person类
   attr_accessor :name, :age, :gender
end
person = Person.new    #实例化
person.name = "Tom"
person.age = 20
person.gender = "male"
puts  person.gender    #结果为 male,类似的你可以试试age,name

 

class  Pet  #建立一个Pet类
   attr_accessor :name, :age, :gender
end
class Cat <Pet  #继承
end
class Dog <Pet
end
class Snake <Pet
     attr_accessor :length  #可以自己创建自己独有的属性
end
cool = Dog.new # 实例化
cool.name = "Lay"
cool.age = 20
cool.length =  10  #会报错因为它没有这个属性,而是Snake独有的

snake = Snake.new
snake.length = 20
puts cool.length    #20

 

分享到:
评论

相关推荐

    Java面向对象编程思想

    以前总听老师说c语言是面向过程的,c++和java是面向对象的,这些糊涂老师却从来不说明何为面向过程,何为面向对象,搞得我一直对此稀里糊涂。 最近看了不少的资料,在这里总结一下对此的心得体会。 所有的计算机程序...

    知识笔记:Python面向对象(九)

    首先解释了何为面向对象以及为什么要在程序中引入此类概念,进而详细探讨了类与对象的定义与使用、面向对象的三个重要特性(封装、继承、多态)、构造器和魔法方法等功能的实现。同时给出了具体的实例来帮助理解面向...

    PHP面向对象编程(用星际快速入门)

    在深入探讨PHP面向对象编程之前,我们先来了解一下何为面向对象编程(OOP)。面向对象编程是一种编程范式,它使用“对象”——即数据和与数据相关的操作的封装体——来设计软件。这种编程方式强调数据的封装、继承和多...

    Python面向对象之类和实例用法分析

    至于何为面向对象,在此就不详说了。面向对象程序设计本身就很值得深入学习,如要了解,请参阅网上其他的资料。 面向对象最重要的概念就是类(Class)和实例(Instance),牢记 类 是抽象的模板,比如Student类,而...

    真的可以,用C语言实现面向对象编程OOP

    我们经常说C语言是面向过程的,而C++是面向对象的,然而何为面向对象,什么又是面向过程呢?不管怎么样,我们最原始的目标只有一个就是实现我们所需要的功能,从这一点说它们是殊途同归的。过程与对象只是侧重点...

    论何为教育.pdf

    论何为教育.pdf

    30张PPT截图揭秘何为工业4.0.pdf

    30张PPT截图揭秘何为工业4.0

    新浪微博何为舟-自动化策略生成的思考与实践.pdf

    新浪微博何为舟-自动化策略生成的思考与实践.pdf

    何为NAT 何为NAT 何为NAT

    NAT(Network Address Translation)是网络地址转换的缩写,是一种网络技术,用于解决公网IP地址短缺的问题。通过NAT,内部网络中的设备可以使用私有IP地址进行通信,而对外界显示统一的公网IP地址,从而有效地节省...

    何为区块链技术.pdf

    何为区块链技术

    何为编程.zip

    何为编程.zip

    何为行为财务学

    何为行为财务学

    何为Agile,何为Scrum

    ### 敏捷开发(Agile Development)概览 敏捷开发是一种迭代式的软件开发方法,强调灵活性、快速响应变化以及紧密的团队协作。这种方法特别适用于规模较大或中等的项目。 #### 敏捷的核心特点 ...

    何为机器视觉?机器视觉入门 20181126

    机器视觉是一种技术,它使计算机和自动化设备能够“看”并理解现实世界,进而执行基于图像的任务。在本文中,我们将深入探讨机器视觉的基本概念、组成部分、应用领域以及其在现代科技中的重要性。...

    何为英雄?!英雄为何?!——读《水浒传》有感.doc

    《水浒传》是中国古典文学中的四大名著之一,作者施耐庵以其独特笔法描绘了一群豪杰聚义梁山的壮丽画卷,提出了何为英雄、英雄为何的深刻主题。通过对书中英雄人物的剖析,我们可以看到英雄的三个主要特质:兄弟义气...

    何为特别行政区.pptx

    何为特别行政区.pptx

    何为科学发展观.docx

    何为科学发展观.docx

    何为商务管理

    何为商务管理

    何为有效的经理人.doc

    何为有效的经理人.doc

Global site tag (gtag.js) - Google Analytics