ruby 类和对象

ruby是一种完美的面向对象编程语言。面向对象编程语言的特性包括:

1,数据封装性

2,数据抽象

3,多态性

4,继承

 

 

 

Ruby中定义类

   以关键词class 开始,后面跟类的名称,类名首字母应大写。(类的定义和面向对象编程的c++Java一样)

Customer定义

Class Customer

End

 

可以用关键词end终止一个类。类中的所有数据成员都是介于类定义和end之间。

 

 

 

Ruby类中的变量

  1,局部变量:局部变量是在方法中定义的变量。局部变量在方法外是不可用的。局部变量以小写字母或 _ 开始。

 

  2,实例变量: 实例变量可以跨任何特定的实例或对象中的方法使用。这意味着,实例变量可以从对象到对           象的改变。实例变量在变量名之前放置符号(@)。

 

  3,类变量: 类变量可以跨不同的对象使用。类变量属于类,且是类的一个属性。类变量在变量名之前放置  符号(@@)。

 

  4,全局变量: 类变量不能跨类使用。如果您想要有一个可以跨类使用的变量,您需要定义全局变量。全局变量总是以美元符号($)开始。

 

 

Ruby中使用new方法创建对象

     对象是类的实例。方法 new 是一种独特的方法,在 Ruby 库中预定义。new 方法属于方法。 下面的实例创建了类 Customer 的两个对象 cust1 cust2

 cust1 = Customer. new

 cust2 = Customer. new

在这里,cust1 cust2 是两个对象的名称。对象名称后跟着等号(=),等号后跟着类名,然后是点运算符和关键字 new

自定义方法来创建 Ruby 对象

您可以给方法 new 传递参数,这些参数可用于初始化类变量。

当您想要声明带参数的 new 方法时,您需要在创建类的同时声明方法 initialize

initialize 方法是一种特殊类型的方法,将在调用带参数的类的 new 方法时执行。

下面的实例创建了 initialize 方法:

实例

class Customer

  @@no_of_customers=0

   def initialize(id, name, addr)

       @cust_id=id

       @cust_name=name

       @cust_addr=addr

   end

end

在本实例中,您可以声明带有 id、name、addr 作为局部变量的 initialize方法。在这里,def  end 用于定义 Ruby 方法 initialize

 initialize 方法中,把这些局部变量的值传给实例变量 @cust_id@cust_name @cust_addr。在这里,局部变量的值是随着 new 方法进行传递的。

现在,您可以创建对象,如下所示:

cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")

cust2=Customer.new("2", "Poul", "New Empire road,Khandala")

 

Ruby 类中的成员函数

Ruby 中,函数被称为方法。中的每个方法是以关键字 def 开始,后跟方法名。

方法名总是以小写字母开头。在 Ruby 中,您可以使用关键字 end 来结束一个方法。

下面的实例定义了一个 Ruby 方法:

class Sample

  def function

     statement 1

     statement 2

  end

end

在这里,statement 1  statement 2 是类 Sample 内的方法 function 的主体的组成部分。这些语句可以是任何有效的 Ruby 语句。例如,我们可以使用方法 puts 来输出 Hello Ruby,如下所示:

class Sample

  def hello

    puts "Hello Ruby!"

  end

end

下面的实例将创建类 Sample 的一个对象,并调用 hello 方法:

#!/usr/bin/ruby

 

class Sample

  def hello

    puts "Hello Ruby!"

  end

end

# 使用上面的类来创建对象

object = Sample. new

object.hello

这将会产生下面的结果:

Hello Ruby!




下面将创建一个名为 Customer Ruby 类,声明两个方法:

  • display_details:该方法用于显示客户的详细信息。
  • total_no_of_customers:该方法用于显示在系统中创建的客户总数量。

实例

#!/usr/bin/ruby

 

 class 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"

  end

 def total_no_of_customers() @@no_of_customers += 1

      puts "Total number ofcustomers: #@@no_of_customers"

  end

end

display_details 方法包含了三个 puts 语句,显示了客户 ID、客户名字和客户地址。其中,puts语句:

puts "Customer id #@cust_id"

将在一个单行上显示文本 Customer id 和变量 @cust_id 的值。

当您想要在一个单行上显示实例变量的文本和值时,您需要在 puts 语句的变量名前面放置符号(#)。文本和带有符号(#)的实例变量应使用双引号标记。

第二个方法,total_no_of_customers,包含了类变量 @@no_of_customers。表达式 @@no_of_ customers+=1 在每次调用方法 total_no_of_customers 时,把变量no_of_customers 1。通过这种方式,您将得到类变量中的客户总数量。

现在创建两个客户,如下所示:

cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")

cust2=Customer.new("2", "Poul", "New Empire road, Khandala")

在这里,我们创建了 Customer 类的两个对象,cust1 cust2,并向 new 方法传递必要的参数。当 initialize 方法被调用时,对象的必要属性被初始化。

一旦对象被创建,您需要使用两个对象来调用类的方法。如果您想要调用方法或任何数据成员,您可以编写代码,如下所示:

cust1.display_details()

cust1.total_no_of_customers()

对象名称后总是跟着一个点号,接着是方法名称或数据成员。我们已经看到如何使用 cust1 对象调用两个方法。使用cust2 对象,您也可以调用两个方法,如下所示:

cust2.display_details()

cust2.total_no_of_customers()

保存并执行代码

现在,把所有的源代码放在 main.rb 文件中,如下所示:

实例

#!/usr/bin/ruby

 

 class 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"

 end

 def total_no_of_customers()

   @@no_of_customers += 1

   puts "Total number of customers: #@@no_of_customers"

 end

end

 # 创建对象

 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()

接着,运行程序,如下所示:

$ ruby main.rb

这将产生以下结果:

Customer id 1
Customer name John
Customer address Wisdom Apartments, Ludhiya
Total number of customers: 1
Customer id 2
Customer name Poul
Customer address New Empireroad, Khandala
Total number of customers: 2




我的这个.rb文件是在sublime上运行的,如果你觉得用cmd比较麻烦的话用sublime直接Ctrl+B 就编译运行了。sublime的下载可以看我之前的博客应该有写的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值