扩充类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩充类相关的知识,希望对你有一定的参考价值。

下面讲如何修改String这个ruby官方的类,因为我们没办法去继承ruby官方类,这就用到扩充类。在此之前先讲解如何给已经定义好的类添加新的方法。

技术分享

逗号写错改过来即可    a=Student.new("张三",23,"男")

class Student
  Version
="1.0.0"
  attr_accessor :name
  attr_reader :no
  attr_writer :gender

  def initialize(name,no,gender)
    @name=name
    @no=no
    @gender=gender
  end

  def sayHi
    puts "我叫#{@name},学号是#{@no}"                                

  end
  

  def self.test
    return "小名"

  end
end

class Student
  def
bye
    p "hello"

    p "再见"
    puts "再见"
  end

end

a=Student.new("张三",23,"男")
a.sayHi
a.bye

技术分享

 

从上面可知,直接再写一次类就能扩充该类的方法,因此给String类扩充两个方法并且覆盖原有name方法

puts  String.name #调用未被修改前String的name方法
class String
  def self
.one
    puts "小s"
  end

  def
two
    puts "2是two"
  end

  def self
.name
    puts "字符串类"
  end
end

a
=String.new("ceshi")
a.two
String.one
String.name

技术分享

以上是关于扩充类的主要内容,如果未能解决你的问题,请参考以下文章

在每批中对大类进行抽样和对小类进行扩充

Java定义学生类student

Programming with Objective-C

OC 中 类目延展和协议

9.类的延展

使用对象流传输Student类