打印

A.1 作业

本帖已经被作者加入个人空间 本主题由 quzhongwei 于 2008-6-9 23:07 设置高亮
问个完全外行的问题 写完执行句语以后要如何执行啊... 才能返回 a=nil

TOP

我认为是先把A这个空对象赋值给a,然后A被定义了,而a还是空的
如果想a不是为空,需要在外面赋值:a=A
class Object
  puts "A"
  def WoW
   puts "WoW"
  end
end

a=A
这个时候a就等于A了
态度决定一切!

TOP

引用:
原帖由 neohsiao 于 2008-6-16 10:54 发表
self表示调用当前的类
那么a=class A
puts "A"
def WoW
puts "WoW"
end
self.WoW
end这样为什么不行?是不是方法一定要实例化才能调用?或者说怎样在类里面就调用类里面的方法?
现代程序设计,实例是必须的,并且就是你的实例.(我们总得面向对象啊,至于以后的设计,等你呢)

TOP

新手

我还是不太懂这段代码有什麽用,仅仅是为了执行 class A中的puts 语句吗?对a来说没
有什么用啊。

TOP

正在向前爬...

TOP

a 应该为NULL 在第一条语句a=class A 后,a就再也没被赋值,而Class A 为NULL,所以a也为NULL 不知这样理解对不?

TOP

引用:
原帖由 cjq_999 于 2008-6-26 20:14 发表
我认为是先把A这个空对象赋值给a,然后A被定义了,而a还是空的
如果想a不是为空,需要在外面赋值:a=A
class Object
  puts "A"
  def WoW
   puts "WoW"
  end
end

a=A
这个时候a就等于A了
我试过 是这样的!

TOP

引用:
原帖由 neohsiao 于 2008-6-16 10:54 发表
self表示调用当前的类
那么a=class A
puts "A"
def WoW
puts "WoW"
end
self.WoW
end这样为什么不行?是不是方法一定要实例化才能调用?或者说怎样在类里面就调用类里面的方法?
你定义的实例方法WoW,然后用调用类方法的方式self.WoW来调用是不可以的

这样写

  1 #!/usr/bin/ruby
  2 #puts "hello,Ruby"
  3 #def foo
  4 # puts "hello,world"
  5 #end
  6 class A
  7   def self.WoW
  8     puts "WoW"
  9   end
 10   self.WoW
 11 end


TOP

引用:
原帖由 liuxueming 于 2008-6-30 17:41 发表
我还是不太懂这段代码有什麽用,仅仅是为了执行 class A中的puts 语句吗?对a来说没
有什么用啊。
这个问题是要这样的
看看下面两个例子

a = class A
  7   def self.WoW
  8     puts "WoW"
  9   end
 10   self.WoW
 11 end
 12
 13 puts a.class


输出是NilClass.是个对象哦

a = class A
  7   def self.WoW
  8     puts "WoW"
  9   end
 10   self.WoW
 11 end
 12
 13 puts a.class.class


这表明NilClass是Class类的一个实例..

这说明ruby里面一切都是对象.....连对象都是某个对象的实例

下个这个例子大概可以说明问题

1 #!/usr/bin/ruby
  2
  3 #重载Class类
  4 class Class
  5       alias oldNew  new
  6       def  new(*args)
  7       print "Creating a new ", self.name, "\n"
  8       oldNew(*args)
  9       end
 10
 11 end
 12
 13 #定义1个新的类(这里仅仅是声明,不会产生输入)
 14
 15 class A
 16   def WoW
 17     puts 'wow'
 18   end
 19 end
 20
 21 #实例化A类10次,每次实例化A类,都会产生一个nilclass实例,nilclass是class类的一个实例,所以产生了10次输出.
 22 for i in (1..10)
 23 A.new
 24 end


总之,一切都是对象,类本身也是某个对象的实例

[ 本帖最后由 karon_flame 于 2008-11-4 12:20 编辑 ]

TOP

self 是Object类

TOP

2008-11-22 20:00 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html) @38.103.63.61