好 进入类 对象 变量等概念了。
类的构造器:initialize
类的tostring()方法 inspect 将显示class的id和它的相关属性
继承
Ruby的继承自动化之余 也比较松散
当子类调用一个自己没有的方法但是在父类才有的方法时 会调用父类里面那个方法。
类与对象
对象变量只是类中的private的变量 它只存在于这个类的一个实例而已
而类变量则是这个类的静态资源 所有这个类的实例都会共享这个数据的类存区。
把它理解成java类中的全局静态变量就ok。
实例变量的初始化放在initialize方法中
类变量就不需要。
类方法: 是无需要新建类的实力就能通过类名直接访问的方法--忘记java才能领会ruby。。
单例与构造器:
ruby的单例与java差不多 怎么还是没忘掉java 郁闷。。
首先要把这个类的new方法设成私有的方法:private_class_method:new
这样外界就不能直接new这个类对象了 。
然后声明以讹空类对象来装这个类里面新建的对象(随便什么名字都行):
@@fuck = nil
当然最后就是定义一个方法来在里面new对象了,new代表着生命的创造啊 ,当然
是private了。。闲话少说 继续:
def getNew
@@fuck = new unless @@fuck---这里的意思是除非今天还没有fuck过,要不当然继续啦
@@fuck = new unless @@fuck
@@fuck 如果是fuk过了 就返回吧。。。
end
完整:
class SingleFuck
private_class_method:new
@@fuck = nil
def self.getNew self的意思是自己来。。。这个不用解释了吧。。
@@fuck = new unless @@fuck
@@fuck
end
end
封装特性:
ruby也有三招:public protected private 当没有特别说明的时候默认是public的。
public
def fuck -------wc?
end
protected
def func2
end
private
def do
end
变量:
ruby中 变量即是引用,所有变量的值之存在于堆栈中,变量只是这个堆栈中一个引用,变量之间的传递只是引用传递不是值传递,
def initialize
woman = nil
copywoman = nil
end
woman = 'oh yeah'
copywoman = woman
woman[0] = 'n'
woman[1] = 'o'
当woman改变的时候 copy的值也改变。这就是引用传递。
当然如果硬要值传递的话也没问题:
copywoman = woman.dup
这时 copy指向的引用和woman就不一样了。
当你不想这个引用指向的堆栈中的值被被人改变时,你可以把它冻结掉
woman.freeze..当copywoman想改变里面的值的时候就会报错了。。
分享到:
相关推荐
The Ruby Way(第2版) <br>The Ruby Way assumes that the reader is already familiar with the subject matter. Using many code samples it focuses on "how-to use Ruby" for specific applications, either ...
《The Ruby Way 第二版》中文版采用“如何解决问题”的方式阐述Ruby编程,书中包含400多个按主题分类的示例。每个示例都回答了“如何使用Ruby来完成”的问题。首先对要完成的任务进行了描述,并讨论了技术方面的约束...
the ruby way the ruby way
The Ruby Way 第三版(英文版),全书22章,书中包含600多个按主题分类的示例。每个示例都回答了“如何使用Ruby来完成”的问题。 ——Ruby on Rails之父David Heinemeier Hansson倾力推荐!
这本书的第二版在2006年出版,由Addison-Wesley出版,作者通过深入浅出的方式,揭示了Ruby语言的强大功能和优雅特性。 Ruby是一种动态类型、面向对象的编程语言,它的设计理念是注重简洁和生产力,让开发者能够更...
内含以下4个文档: 1、Addison.Wesley.The.Ruby.Way.2nd.Edition.Oct.2006.chm 2、O'Reilly.Learning.Ruby.May.2007.chm 3、Programming Ruby 2e.pdf 4、ruby中文文档.chm
Are you frustrated with demanding languages that seem to get in your way, instead of getting the work done? If so, then we've got a language and book for you! Ruby is a fully object-oriented ...
express algorithms in a very natural way, and then it’s just a matter of typing ruby at the command line and pressing enter, and your Ruby script is running. However, Ruby’s syntax is deceptively ...
《The Ruby Way》第二版是Addison-Wesley出版社在2006年10月出版的一本关于Ruby编程语言的权威指南。这本书深入浅出地介绍了Ruby语言的核心特性和高级用法,旨在帮助读者全面理解和掌握Ruby的精髓。通过阅读这本书,...
Speak directly to your system. With its simple commands, flags, and parameters, a well-formed command-line application is the quickest way to automate a backup, a build, or... This is updated for Ruby 2.
《Ruby Way》一书还会详细介绍Ruby的Gem包管理器,Gem是Ruby生态系统的核心部分,提供了大量的库和工具,让开发者能够轻松地安装和使用第三方软件包。此外,书中可能涵盖了Ruby on Rails框架,它是基于Ruby构建Web...
这本书,由Addison-Wesley出版,第二版于2006年10月发行,书名是"The Ruby Way",作者未在提供的信息中提及,但可以肯定的是,它深入浅出地介绍了Ruby语言的核心概念和实践技巧。 Ruby是一种面向对象的、动态类型的...
考阿路由器找到我的路 用于路由器... 旧版本: koa-router-find-my-way @ 3 => find-my-way @ 2 koa-router-find-my-way @ 2 => find-my-way @ 1基本用法const koaRouter = require ( 'koa-router-find-my-way' ) ;cons
You'll make sure slow code doesn't creep back into your Ruby application by writing performance tests, and you'll learn the right way to benchmark Ruby. And finally, you'll dive into the Ruby ...