Lớp trong Ruby là gì?
Các lớp 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 xác định kế hoạch chi tiết để tạo các đối tượng.
Đối tượng là sản phẩm của lớp .
Vậy đối tượng là gì?
Đối tượng là một “sự vật” riêng lẻ, có danh tính riêng và dữ liệu riêng của nó.
Ví dụ :
Một Book
lớp có thể là bản thiết kế để tạo sách.
Lớp này xác định những thuộc tính mà TẤT CẢ sách có chung, như:
- một tiêu đề
- một tác giả
- trang
- v.v.
Mỗi cuốn sách riêng lẻ là một đối tượng và bạn có thể tạo ra nhiều đối tượng giống như nó nhờ vào Book
lớp. Đó là điểm của việc tạo các lớp, chúng là bản thiết kế có thể sử dụng lại cho ứng dụng Ruby của bạn.
Bây giờ :
Bạn sẽ học cách viết các lớp học của riêng mình để có thể bắt đầu viết mã OOP ngay hôm nay.
Cách tạo một lớp Ruby
Cú pháp để tạo một lớp như sau:
class Orange end
Lưu ý rằng :
- Tên lớp bắt đầu bằng chữ hoa
- Chúng tôi sử dụng
class
từ khóa, sau đó làend
từ khóa - Một lớp trống không hữu ích lắm nhưng bạn vẫn có thể tạo các đối tượng từ nó
Có những cách khác để tạo một lớp (như Class.new
), nhưng những phương pháp này chỉ hữu ích trong các tình huống đặc biệt.
Một lớp, nhiều đối tượng
Công dụng chính của một lớp là trở thành một vùng chứa các phương thức, biến cá thể &hằng số, tạo thành một bản thiết kế mà bạn có thể tạo các đối tượng từ đó.
Bạn có thể tạo các đối tượng bằng new
phương pháp.
Như thế này :
Orange.new
Chúng tôi biết quá trình tạo một đối tượng dưới dạng “khởi tạo” và chúng tôi nói rằng một đối tượng là một “thể hiện” của một lớp.
Tại sao phải tạo các đối tượng?
Bởi vì mọi đối tượng bạn tạo đều khác biệt và duy nhất .
Mọi đối tượng đều có bản sắc riêng của nó.
Ví dụ :
Với Orange
lớp, mọi orange
đối tượng bạn tạo có trọng lượng, quốc gia xuất xứ, chất lượng, v.v.
Làm cho các lớp Ruby hữu ích hơn
Các lớp trở nên hữu ích hơn khi bạn bắt đầu thêm các phương thức cá thể và biến cá thể vào chúng.
Phương thức là thứ mà lớp của bạn có thể làm.
Ví dụ :
Bạn có thể vắt một quả cam để lấy nước.
Đây là một ví dụ về mã :
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 các đối tượng của bạn!
Mọi Orange
đối tượng bạn tạo sẽ có quyền truy cập vào squeeze
này &đó là một trong những lợi ích của việc sử dụng các lớp.
Một biến phiên bản là điều mà lớp 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 phiên bản khác với biến cục bộ vì chúng bắt đầu bằng @
Biểu tượng. Bạn không thể truy cập chúng bên ngoài lớp trừ khi bạn xác định attr_accessor.
Đó là Lớp nào?
Khi làm việc với các đối tượng trong Ruby, sẽ rất hữu ích nếu biết một đối tượng được tạo từ lớp nào.
Bạn có thể làm điều đó như thế này :
"".class # String [].class # Array orange.class # Orange (assuming orange = Orange.new)
Tại sao điều này hữu ích?
Các phương thức là công cụ nhỏ giúp mọi thứ xảy ra trong Ruby.
Nếu bạn biết lớp học, bạn có thể tìm ra những phương pháp có sẵn (sử dụng Google, ri
hoặc pry
), nói cách khác, bạn có thể khám phá những gì đối tượng có thể làm cho bạn!
Tìm hiểu thêm về lớp học
Đây chỉ là “phần nổi của tảng băng chìm” khi nói đến các lớp học.
Nếu bạn muốn tìm hiểu thêm…
Đọc những điều này :
- Phương thức khởi tạo Ruby
- Attr_accessor, attr_reader, attr_writer
- Kế thừa trong OOP
- Lập trình hướng đối tượng
Bản thân các lớp Btw cũng là các đối tượng, ít nhất là trong Ruby 🙂
Tóm tắt
Bạn đã tìm hiểu về các lớp trong Ruby, cách tạo chúng và lý do tại sao chúng hữu ích!
Đừng quên chia sẻ bài viết này để nhiều người cùng thưởng thức.
Cảm ơn vì đã đọc.