Ruby on Rails 入门之:(11) Ruby中的类方法

在Ruby的类中,添加方法和其他的语言一样,而且方法也可以包含参数,也有返回值,也有默认参数。


Ruby类中的方法的的默认参数和其他任何语言的都一样,默认的函数参数只能从最后的参数开始,不能有间隔。


在类中,使用def 定义一个方法


在Ruby中,定义方法的参数可以不用小括号来标识,如果省略小括号,方法名和参数之间需要用空格分开,调用方法的时候也可以省略括号。


#encoding:gbk

class Animal
	def eat(food)
		puts "i eat " + food;
	end
end

a = Animal.new;
a.eat("rice");
a.eat "choloate";

我个人一直认为Ruby中这个函数可以有括号可以没有括号的规则有点不爽,感觉怪怪的,可能是写其他的语言的程序写习惯了吧,也可能有它存在的好处,只是我还没有发现。


Ruby代码由表达式构成,每一个表达式都有一个返回值。调用方法的语句也是一个表达式,所有也有返回值。Ruby允许方法返回一个值,任何方法的返回值都是方法最后执行的表达式的结果,如果有return可以使用return语句显示的返回一个返回值。


#encoding:gbk

class Animal
	def eat(food)
		puts "i eat " + food;
	end

	def add a,b
		return a+b;
	end
end

a = Animal.new;
a.eat("rice");
a.eat "choloate";

result = a.add(1,1);
puts result;
result = a.add 1,1;
puts result;

Ruby中的特殊方法:


我们可以为一个对象追加一个方法,这个方法只是属于这个具体的对象实例。


#encoding:gbk

class Animal
	def eat(food)
		puts "i eat " + food;
	end

	def add a,b
		return a+b;
	end
end

a = Animal.new;
a.eat("rice");
a.eat "choloate";

result = a.add(1,1);
puts result;
result = a.add 1,1;
puts result;

def a.show
	puts "added method to a";
end

a.show;

定义类方法


和其他的语言一样,Ruby中也可以定义类方法。

#encoding:gbk

class Animal

	def Animal.show
		puts "i am class Animal";
	end


	def eat(food)
		puts "i eat " + food;
	end

	def add a,b
		return a+b;
	end
end

a = Animal.new;
a.eat("rice");
a.eat "choloate";

result = a.add(1,1);
puts result;
result = a.add 1,1;
puts result;

def a.show
	puts "added method to a";
end

a.show;

puts Animal.show;

类方法不一定要放在类中,他也可以放在类的外部单独生命。不过如果类方法声明在类中,就可以使用self关键字来代替类名。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值