Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Ruby

Làm chủ thiết kế Class Ruby: Hướng dẫn từng bước xây dựng Custom Classes

Class trong Ruby là gì?

Classes là các khối xây dựng cơ bản trong Lập trình Hướng đối tượng (OOP) và chúng giúp bạn định nghĩa bản thiết kế (blueprint) để tạo đối tượng.

Đối tượng là sản phẩm của class.

Vậy đối tượng là gì?

Một đối tượng là một "điều" riêng biệt, với danh tính riêng và dữ liệu riêng.

Ví dụ:

Một class Book có thể là bản thiết kế để tạo sách.

Class này định nghĩa những thuộc tính TẤT CẢ cuốn sách đều có chung, như:

  • một tiêu đề (title)
  • một tác giả (author)
  • số trang (pages)
  • v.v.

Mỗi cuốn sách riêng lẻ là một đối tượng và bạn có thể tạo nhiều đối tượng giống nhờ class Book. Đó là điểm của việc tạo class, chúng là bản thiết kế tái sử dụng cho ứng dụng Ruby của bạn.

Bây giờ:

Bạn sẽ học cách viết class riêng của mình để bắt đầu viết code OOP, ngay hôm nay.

Cách tạo một Ruby Class

Cú pháp tạo class như sau:

class Orange
end

Chú ý:

  • Tên class bắt đầu bằng chữ in hoa
  • Chúng ta dùng từ khóa class, sau đó là từ khóa end
  • Một class rỗng không quá hữu ích, nhưng bạn vẫn có thể tạo đối tượng từ nó

Có cách khác để tạo class (như Class.new), nhưng các phương pháp đó chỉ hữu ích trong tình huống đặc biệt.

Một Class, Nhiều Object

Cách dùng chính của class là làm container cho các phương thức, biến instance và hằng số, tạo thành bản thiết kế mà bạn có thể tạo đối tượng từ đó.

Bạn có thể tạo đối tượng dùng phương thức new.

Như sau:

Orange.new

Chúng ta biết quá trình tạo đối tượng là "instantiation" (khởi tạo), và chúng ta nói đối tượng là một "instance" (thể hiện) của một class.

Tại sao tạo đối tượng?

Bởi vì mọi đối tượng bạn tạo là khác biệt và duy nhất.

Mọi đối tượng có danh tính riêng.

Ví dụ:

Với class Orange, mọi đối tượng orange bạn tạo có trọng lượng, xuất xứ, chất lượng, v.v. riêng.

Làm cho Ruby Classes hữu ích hơn

Classes trở nên hữu ích hơn khi bạn bắt đầu thêm phương thức instance và biến instance vào chúng.

Một phương thức là điều class của bạn có thể làm.

Ví dụ:

Bạn có thể vắt một cam để lấy nước.

Code ví dụ:

class Orange
  def squeeze
    puts "Here's your juice!"
  end
end
orange = Orange.new
orange.squeeze

Các phương thức này trở thành lệnh cho đối tượng của bạn!

Mọi đối tượng Orange bạn tạo sẽ có quyền truy cập phương thức squeeze này và đó là một lợi ích của việc dùng class.

Biến instance là điều class của bạn biết.

Ví dụ:

class Orange
  def initialize
    @juice_available = 100
  end
  def squeeze
    @juice_available -= 50
  end
end

Biến instance khác với biến cục bộ vì chúng bắt đầu bằng ký hiệu @. Bạn không thể truy cập chúng bên ngoài class trừ khi bạn định nghĩa attr_accessor.

Đó là Class nào? (What Class is It?)

Khi làm việc với đối tượng trong Ruby, biết đối tượng đó được tạo từ class nào rất hữu ích.

Bạn có thể làm như sau:

"".class # String
[].class # Array
orange.class # Orange (giả sử orange = Orange.new)

Tại sao điều này hữu ích?

Phương thức là những "động cơ nhỏ" làm mọi thứ xảy ra trong Ruby.

Nếu bạn biết class, bạn có thể tìm ra phương thức nào có sẵn (dùng Google, ri, hoặc pry), nói cách khác, bạn có thể khám phá đối tượng có thể làm gì cho bạn!

Tìm hiểu thêm về Classes

Đây mới chỉ là "ngọn núi băng" khi nói đến classes.

Nếu bạn muốn tìm hiểu thêm…

Hãy đọc những bài này:

  • Phương thức initialize trong Ruby
  • Attr_accessor, attr_reader, attr_writer
  • Kế thừa trong OOP
  • Lập trình Hướng đối tượng

Btw, chính class cũng là đối tượng, ít nhất trong Ruby 🙂

Tóm tắt

Bạn đã học về class trong Ruby, cách tạo chúng và tại sao chúng hữu ích!

Đừng quên chia sẻ bài viết này để nhiều người hơn có thể thưởng thức.

Cảm ơn bạn đã đọc.