#第十二課 邏輯運算 a,b = true, false puts a && b #邏輯與運算 puts a || b #邏輯或運算 puts !a #取反 puts !b puts c = (4 >3) puts (4 > 3) && b #三元運算 a, b = 4,5 puts c = (a > b) ? a : b #範圍運算 (2..5).each do |n|#從2到5閉區間 print n end (2...5).each do |n|#從2到4左閉右開 print n end #Ruby中符號也能夠是方法名 class Student Version = 2#常量 @@all_num = 2 #全局變量得要初始化否則要報錯 include Math #導入Mathm模塊 Mix-in extend Math def initialize(name, num, sex) @name = name @num = num @sex = sex end class << self def class_fun puts "這是一個類方法" end def class_fun2 puts "這也是一個類方法" end end def self.class_fun3 puts "這是類方法的另一種寫法" end #至關於Java中的get方法 def get_name @name puts @@all_num += 1 end def name @name end #至關於Java中的set方法 def name=(value) @name = value end def set_name(name) @name = name puts @@all_num += 1 end end class Student def expend puts "擴展類" end end class MiddleStudent < Student attr_reader :name attr_writer :name def initialize(name) @name = name end def sub_fun puts "這是子類的方法#{@name}" end end puts s = Student.new("young", 20, "男") puts s.get_name puts s.name puts s.set_name("改了個名字") puts s.name =("改了個好名字") m = MiddleStudent.new("初中生") puts m.name class Vector attr_accessor :x, :y def initialize(x, y) @x = x @y = y end def +(value) #符號+作爲方法名 Vector.new(@x + value.x, @y + value.y) end def -(value)#符號-作爲方法名 Vector.new(@x - value.x, @y - value.y) end end p a = Vector.new(3, 5) p b = Vector.new(6, 9) p a + b p a - b