`
好好学习-天天向上
  • 浏览: 35937 次
  • 性别: 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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics