#第十二课 逻辑运算 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