Object 也是一种数据类型,可以有属性,有method.
反之,在Ruby中,每一种数据类型都是Object。如String,Integer,Float,Array,Hash.
IN Ruby everything is a object!
Class定义Object
Class就像是模具板,定义了同一种类型的Object有哪些共同的attribute和method.
Ruby defines the attributes and behaviors of its objects in classes.
class Carattr_accessor :color # 这会定义属性 @colordef runputs "This #{@color} car is running"endend
可以用new 来产生实例对象 。例子:
car1 = Car.new
car1.color = "red"
car1.run
内建类
刚刚说过在Ruby 中,每种数据类型都是对象Object。他们都是从类种产生出来的:
"foobar".class
会回传 String
是个类
String.new("foobar")
等同于 "foobar"
不过由于这些数据太常见,使用太频繁,就不用 .new来产生,直接用符号表示了。
常数Constant
在Ruby 中,大写开头的变量叫常数,?️ 这个数值固定不变。例如:
STATUS = ["pending", "confirmed"]
Pi = 3.1415926
所有的Class类都是一种常数,所以命名的时候用大写开头。
题目 27
请自订一个 Person 对象,属性有 first_name
, last_name
,然后定义一个方法是 greet
会输出 "Hi, <first_name> <last_name>"
如果要在实例对象的时候,就传入实例变量,p1 = Person.new("王明") ,则必须使用 initialize(..) method
⚠️ :实例化对象的时候,就必须加入参数了,否则会报错
❌ :in `initialize': wrong number of arguments (given 0, expected 2)