详解Ruby-类和对象 (详解中美元首通话细节)

教程大全 2025-07-08 15:05:29 浏览

Ruby是一种解释型、面向对象、动态类型的语言。Ruby采取的策略是在灵活性和运行时安全之间寻找平衡点。随着Rails框架的出现,Ruby也在2006年前后一鸣惊人,同时也指引人们重新找回编程乐趣。

一个面向对象的程序,涉及到的类和对象。类是个别对象创建的蓝图。在面向对象的术语中,您的自行车是自行车类的一个实例。 以车辆为例,它包括车轮(wheels)、马力(horsepower)、燃油或燃气罐容量(fuel or gas tank capacity)。这些属性形成了车辆(Vehicle)类的数据成员。借助这些属性您能把一个车辆从其他车辆中区分出来。 车辆也能包含特定的函数,比如暂停(halting)、驾驶(driving)、超速(speeding)。这些函数形成了车辆(Vehicle)类的数据成员。因此,您可以定义类为属性和函数的组合。 类 Vehicle 的定义如下:

实例

ClassVehicle{numberno_of_wheelsNumberhorsepowerCharacterstype_of_tankNumberCapacityFunctionspeeding{}Functiondriving{}Functionhalting{}}

通过给这些数据成员分配不同的值,您可以创建类 Vehicle 的不同实例。例如,一架飞机有三个轮子,马力 1,000,燃油罐容量为 100 升。以同样的方式,一辆汽车有四个轮子,马力 200,煤气罐容量为 25 升。

为了使用 Ruby 实现面向对象编程,您需要先学习如何在 Ruby 中创建对象和类。 在 Ruby 中,类总是以关键字 class 开始,后跟类的名称。类名的首字母应该大写。类 Customer 如下所示:

classCustomerend

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

Ruby 提供了四种类型的变量:

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

实例

classCustomer@@no_of_customers=0end

在 Ruby 中使用 new 方法创建对象

对象是类的实例。现在您将学习如何在 Ruby 中创建类的对象。在 Ruby 中,您可以使用类的方法 new 创建对象。

方法 new 是一种独特的方法,在 Ruby 库中预定义。new 方法属于类方法。

下面的实例创建了类 Customer 的两个对象 cust1 和 cust2:

cust1=Customer.newcust2=Customer.new

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

自定义方法来创建 Ruby 对象

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

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

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

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

实例

classCustomer@@no_of_customers=0definitialize(id,name,addr)@cust_id=id@cust_name=name@cust_addr=addrendend

在本实例中,您可以声明带有 id、name、addr 作为局部变量的 initialize方法。在这里,def 和 end 用于定义 Ruby 方法 initialize。在后续的章节中,您将学习有关方法的更多细节。

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

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

cust1=Customer.new(,,)cust2=Customer.new(,,)

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

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

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

classSampledefstatement1statement2endend

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

classSampledefhelloputsendend

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

classSampledefhelloputsendend

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

object=Sample.newobject.hello

这将会产生下面的结果:

HelloRuby!

java里的类和对象分别是什么意思

marry是一个人marry 就是 一个具体的人而通常我们说人时,并不是说 marry但是 如果谁不知道什么是人,你可以告诉他,像marry那样的就是人了所以:marry就是人这个类的一个具体的对象(也叫实例)要有marry(对象),首先得有人这个类(可以理解为类型),再 new 一个人才行,然后你可以把给这个 new 出来的人 一个名字,比如marry。 以后大家说到marry时,就是指的这个新人了,然而,marry始终是属于人的类型。 当然,你还可以说他是生物,或是女人,这就关系到继承了

什么是JAVA脚本

详解Ruby

就是写在jsp中的java语句。就是java脚本

关于Ruby

Ruby on Rails是一个用于编写网络应用程序的框架,它基于计算机软件语言Ruby,给程序开发人员提供强大的框架支持。 Ruby on Rails包括两部分内容:Ruby语言和Rails框架。 什么是Ruby?Ruby 语言是一种动态语言,它与Python、Smalltalk和Perl这3种编程语言有些类似。 Ruby语言起源于日本,它的研发者是日本人松本行弘(Matsumoto Yukihiro)。 松本行弘在1993年开始着手Ruby语言的研发工作,他开发Ruby语言的初衷是为了提高编程的效率。 1995年12月Matz推出了Ruby的第一个版本Ruby 0.95。 Ruby语言的主要特点如下。 1.纯的面向对象语言在Ruby中,一切皆是对象。 下面举一个例子来更直观地说明Ruby语言的这一特点。 在Java中,求一个数的绝对值的代码如下。 int c = (-20);而在Ruby语言中,一切皆是对象,也就是说“-20”这个数也是一个对象,因此,求一个数绝对值的Ruby代码形式如下。 c = 这样的代码编写方式是不是更形象一些呢?2.解释型脚本语言Ruby 语言是解释型脚本语言,它既有脚本语言强大的字符串处理能力和正则表达式,又不失解释型语言的动态性。 一方面,在最初设计Ruby语言时,Ruby的研发者松本行弘考虑到文字处理方面的需要,他借鉴了Perl语言在文字处理方面的成功经验。 另一方面,松本行弘将Ruby语言设定为一种解释型语言,Ruby 的动态性使得由Ruby语言编写的程序不需要事先编译即可直接运行,这为程序的调试带来了方便。 同时,这一特点可以实现开发过程中的快速反馈。 3.其他特点(1)动态载入。 可以在运行时候重定义自己,类也可以在运行时继承或取消继承。 (2)自动内存管理机制。 (3)多精度整数。 (4)迭代器和闭包。 (5)开源项目。 有大量活跃的社区支持Ruby语言。 什么是Rails?虽然Ruby语言有很多优点,但是一直以来,其流行的范围也仅限于日本。 直到2004年,Ruby才逐渐被世界上其他地区的人们所认识,那么是什么让Ruby语言走向世界的呢?是Rails。 Rails 框架首次提出是在2004年7月,它的研发者是26岁的丹麦人David Heinemeier Hansson。 不同于已有复杂的Web 开发框架, Rails是一个更符合实际需要而且更高效的Web开发框架。 Rails结合了PHP体系的优点(快速开发)和Java体系的优点(程序规整),因此, Rails在其提出后不长的时间里就受到了业内广泛的关注。 Rails框架主要有如下的6大特点。 1.全栈式的MVC框架Rails是一个全栈式的MVC框架,换句话说,通过Rails可以实现MVC模式中的各个层次,并使它们无缝地协同运转起来。 在实际开发一个MVC模式的Web应用项目时,如果使用Java开发,需要用到Struts(Model层)、Hibernate (Controller 层)和Spring(View层)3个框架,而且需要额外整合3个框架开发出的内容。 而使用Ruby语言开发相同的项目时,只需要用到Rails框架就可以完成。 2.约定优于配置为了说明各个对象之间的关联关系,一般的Web应用开发框架往往采用写入XML配置文件的方法。 这种方式虽然可以解决一些问题,但是却带来了管理上的混乱。 Rails 对此的态度是约定优于配置,这意味着在Rails中不会出现XML配置文件。 Rails使用Web应用多年来积累的各种常见约定(更具体地说是命名规则)来代替XML配置文件,而在Rails内部的映射与发现机制根据这些约定可以实现对象之间的关联。 在第1章中,通过Rails的映射与发现机制实现了数据表与Ruby对象之间的关联。 3.更少的代码使用约定来代替XML配置文件说明Rails本身完成了大量的底层工作,这意味着使用更少的代码来实现应用程序是极有可能的。 此外,代码量的缩减也减小了出现bug的可能性,降低了维护程序和升级程序的难度。 4.生成器Rails 使用的实时映射技术和元编程技术,免去了开发人员在开发过程中编写大量样板文件代码的烦恼。 在少数需要使用样板文件代码的时候,开发人员可以通过 Rails内建的生成器脚本实时创建,而不再是通过手工编写。 Rails的这个特点可以使开发人员更专注于系统的逻辑结构,而不必为一些琐碎的细节所烦扰。 5.零周转时间对已有的Web应用系统进行修改后,其一般需要经过配置、编译、发布、重新设置、测试等一系列步骤才能投入使用,这明显浪费了许多时间。 而使用Rails开发Web应用系统,可以通过浏览器即时查看程序运行结果,从而节约了大量的时间。 6.支架系统Rails的支架系统可以自动为任何相关的数据库表创建一套包含标准CRUD操作和前台视图的系统。 通过支架系统,开发人员可以方便快捷地操纵数据库中的数据表。 此外,Rails也允许开发人员使用自己设计的代码或视图来替换自动生成的代码和视图。 目前,Rails的最新版本是2005年12月13日发布的v1.0.0。 从RoR正式提出到v1.0.0的发布,RoR在一年多的时间里受到了业内人士的广泛关注。 RoR受到广泛关注主要有如下两个原因:首先,RoR的开发效率高(部署容易)、功能丰富(支持Ajax等流行应用),有消息称对于相同的 Web开发项目,使用RoR开发比使用Java体系架构开发快5~10倍;此外,令人不可思议的高性能是其受到关注的另一个重要原因,根据CSDN上转载的新闻称使用RoR开发出来的项目性能,比基于Struts+Hibernate+Spring的Java应用还要高15%~20%。 RoR 当前遇到的主要问题是使用RoR搭建的大型商业应用还很少,究其原因可以概括为两点:第一,从开发能力的角度,RoR是一个基于Ruby语言的轻型Web 开发框架,很多开发者对其是否适合大型应用难以把握。 第二,本身使用RoR开发的大型商业应用较少,使得后来者持观望态度。 综合分析来看,RoR的发展前景还是很光明的。 RoR在短时间内取得了巨大的成就,它打破了Web开发领域的固有观念,方便快捷的开发方式使其被广泛接受。 而事实上,现在已有几家跨国公司正在使用RoR开发自己的Web应用程序,并且有多家大型公司在考虑使用RoR进行Web应用开发。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐