Ruby学习笔记02_Ruby 类和对象

2017-09-29 08:05:37来源:CSDN作者:slowsnowscar人点击

分享

Ruby 是一种完美的面向对象编程语言。面向对象编程语言的特性包括:
1.数据封装
2.数据抽象
3.多态性
4.继承

实例:

Class Vehicle{   Number no_of_wheels   Number horsepower   Characters type_of_tank   Number Capacity   Function speeding   {   }   Function driving   {   }   Function halting   {   }}

Ruby中定义类

在 Ruby 中,类总是以关键字 class 开始,后跟类的名称。类名的首字母应该大写。类 Customer 如下所示:

class Customerend

Ruby 类中的变量

Ruby提供了4中变量

  • 局部变量:局部变量是在方法中定义的变量。局部变量在方法外是不可用的。在后续的章节中,您将看到有关方法的更多细节。局部变量以小写字母或 _ 开始。
  • 实例变量:实例变量可以跨任何特定的实例或对象中的方法使用。这意味着,实例变量可以从对象到对象的改变。实例变量在变量名之前放置符号(@)。
  • 类变量:类变量可以跨不同的对象使用。类变量属于类,且是类的一个属性。类变量在变量名之前放置符号(@@)。
  • 全局变量:类变量不能跨类使用。如果您想要有一个可以跨类使用的变量,您需要定义全局变量。全局变量总是以美元符号($)开始。

Ruby 中使用new方法创建对象

cust1 = Customer. newcust2 = Customer. new

自定义方法来创建 Ruby 对象

给方法new传递参数, 这些参数用于初始化类变量
当想声明带参数的new方法时, 需要在创建类的同时声明方法initialize. initialize方法是一种特殊类型的犯法,将在调用带参数的类的new方法时执行

class Customer   @@no_of_customers=0   def initialize(id, name, addr)      @cust_id=id      @cust_name=name      @cust_addr=addr   endendcust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")cust2=Customer.new("2", "Poul", "New Empire road, Khandala")

Ruby 类中的成员函数

在 Ruby 中,函数被称为方法。类中的每个方法是以关键字 def 开始,后跟方法名。
方法名总是以小写字母开头。在 Ruby 中,您可以使用关键字 end 来结束一个方法。

#!/usr/bin/rubyclass Sample   def hello      puts "Hello Ruby!"   endend# 使用上面的类来创建对象object = Sample. newobject.hello

例子

#!/usr/bin/rubyClass Customer    @@no_of_customers=0    def initialize(id,name,addr)        @cust_id=id        @cust_name=name        @cust_addr=addr    end    def display_details()        puts "customer id #@cust_id"        puts "customer name #@cust_name"        puts "customer address #@cust_addr"    endend#创建对象cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")cust2=Customer.new("2", "Poul", "New Empire road, Khandala")# 调用方法cust1.display_details()cust1.total_no_of_customers()cust2.display_details()cust2.total_no_of_customers()

运行结果:

Customer id 1Customer name JohnCustomer address Wisdom Apartments, LudhiyaTotal number of customers: 1Customer id 2Customer name PoulCustomer address New Empire road, KhandalaTotal number of customers: 2

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台