Ruby类的创建与使用
Ruby是一种面向对象编程语言,这意味着它操纵的编程结构称为"对象"
先上代码, 了解类的定义与使用方式
class Computer $manufacturer = "Mango Computer, Inc." @@files = {hello: "Hello, world!"} def initialize(username, password) @username = username @password = password end def current_user @username end def self.display_files @@files end end # Make a new Computer instance: hal = Computer.new("Dave", 12345) puts "Current user: #{hal.current_user}" # @username belongs to the hal instance. puts "Manufacturer: #{$manufacturer}" # $manufacturer is global! We can get it directly. puts "Files: #{Computer.display_files}" # @@files belongs to the Computer class. --------------------------------------------------------------------- 输出: Current user: Dave Manufacturer: Mango Computer, Inc. Files: {:hello=>"Hello, world!"} nil
类的定义
class Computer #class magic here end
根据Ruby命名约定, 类的名称第一个字母要大写,之后每个单词的首字母大写, 两个单词之间不再用下划线_分隔
class Computer def initialize end end
观察上面类的定义, 类中出现了initialize这个方法, 这个方法用来初始化类的对象,如果没用这个方法,对象就无法生成对象。(对应于c++/java的构造函数)
class Computer $manufacturer = "Mango Computer, Inc." @@files = {hello: "Hello, world!"} def initialize(username, password) @username = username @password = password end end
在Ruby的世界里, 我们用在一个变量名前加上@表示这个变量是一个实例变量,这意味着这个变量只能被类的实例所访问。
局部变量只作用于某个具体的方法中。
变量名前有两个@, 即@@的变量,叫做类变量,它并不属于类的实例,而是属于类自身(类似C++中的static变量)。
全局变量有两种定义方式, 一种是定义在所有类和方法之外。如果你想把全局变量放入类中, 那么采用另一种定义方式,在变量名之间加上$。