Ruby – Objects, Classes and Methods

Cùng tìm hiểu những khái niệm OOP trong ngôn ngữ lập trình Ruby.

Objects, Classes

Trong Ruby, một thứ cụ thể như số, chuỗi hay cái gì đi nữa – một đối tượng đều là thể hiện của một lớp. Một thông báo “Something went wrong” là thể hiện của một class tên là String. Theo ngôn ngữ tự nhiên, “Something went wrong” là một String

Và tôi có ví dụ về một vài loại đối tượng cơ bản khác.

Class là một loại bản thiết kế, một loại khuôn mẫu mà ở đó, mỗi khi một đối tượng được tạo ra, chúng ta nói rằng rằng một đối tượng đang được khởi tạo từ class.

Methods

Class có rất nhiều đặc tính nhưng điều quan trọng nhất là mỗi class định nghĩa một tập hợp những phương thức, những thứ dành riêng cho những đối tượng thuộc class đó. Mỗi đối tượng được khởi tạo từ một class sẽ có tất cả các phương thức được định nghĩa.

Phương thức là những hành vi của đối tượng – là những thứ mà đối tượng có thể làm. Tôi là sử dụng methods trong những ví dụ từ trước. upcase và is_a là những phương thức của đối tượng chuỗi – String.

irb(main):010:0> “Something went wrong.”.upcase
=> “SOMETHING WENT WRONG.”
irb(main):011:0> “Something went wrong.”.is_a?(String)
=> true

Như các bạn đã thấy, để gọi một phương thức trên một đối tượng, chúng ta đơn giản là dùng toán tử chấm với cú pháp chung <object>.<method_name>. Một số thông tin phải được cung cấp thêm khi gọi phương thức trên một đối tượng gọi là tham số. Hãy thử các ví dụ dưới đây. Trong đó, “ir” và “The ” là những tham số lần được truyền vào phương thức String.delete() và String.prepend().

Để kiểm tra xem một đối tượng có những phương thức nào, tôi có thể tra cứu tài liệu của ngôn ngữ Ruby hoặc đơn giản là tìm kiếm trên google. Nhưng tôi cũng có thể trực tiếp sử dụng phương thức “methods” để làm điều này.

Trên đây là những phương thức của một đối tượng chuỗi, trông quá “khủng khiếp”, hãy thử dần trong quá trình sử dụng.

Predicate methods

Trong Ruby, đối tượng có một loại phương thức đặc biệt mà nó chỉ trả về giá trị true hoặc false. Những phương thức này được gọi kèm theo dấu hỏi (?) ở cuối tên phương thức. Điều này làm cho chúng giống như một câu hỏi yes/no rất gần gũi với ngôn ngữ tự nhiên Tiếng Anh.

Bang Methods

Thông thường, những phương thức chỉ trả về một giá trị nhất định mà không thay đổi đối tượng được gọi. Để phương thức thay đổi bản thân đối tượng, chúng ta phải gọi phương thức với một dấu chấm than (!) ở cuối tên phương thức. Cách gọi phương thức kiểu này gọi là “Bang Methods”.

Lời kết

Sau khi tìm hiểu sơ lược về những khái niệm objects, classes hay methods trong Ruby, cá nhân tôi thấy rằng quả đúng tính hướng đối tượng (OOP) của Ruby là rất mạnh mẽ. Việc sử dụng đối tượng và phương thức trong Ruby cũng rất dễ dàng và gần gũi hơn so với một số ngôn ngữ khác như C++, Java, PHP and etc.

Chúc các bạn học tập và làm việc vui vẻ!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *