[Ruby Cơ Bản] Ruby - Object Oriented
Bài đăng này đã không được cập nhật trong 7 năm
Ruby là một ngôn ngữ thuần hướng đối tượng. Tất nhiên, mọi thứ trong ruby đều là đối tượng. Mỗi một giá trị trong ruby là một Object,cả những kiểu dữ liệu primitive như: string, number hay là boolean. Thậm chí bản thân class cũng là một object kế thừa từ class Class. Trong bài viết này chúng ta sẽ tìm hiểu các chức năng liên quan của OOP trong ruby. Một class được sử dụng để mô tả một object và
Define ruby class
Khi định nghĩa một class, bạn định nghĩa một blueprint (phác thảo kiểu ) cho data type. Cú pháp
class Box
# code here
end
Tên class phải có kí tự đầu viết hoa và phần còn lại phải theo camelcase
Khai báo ruby Object
mội class cung cấp môtj blue print cho một object. Về cơ bản, một object được tạo ra từ một class. Cú pháp:
box1 = Box.new
The initialize methods
The initialize methods là phuwong thức chuẩn có sẵn của của ruby, định nghĩa về nó giống hệt như là constructor trong oop. The initialize method khi bạn muốn khởi tạo một vài variables class vào thời điểm object được tạo ra. Cú pháp:
class Box
def initialize(w,h)
@width, @height = w, h
end
end
Biến instance
Instance variables cũng là một thuộc tính của class và nó sẽ trở thành một thuộc tính của object khi object được tạo ra bởi class nào đó. Mỗi attribute của object mang một giá trị riêng biệt và không chung với các object khác. Chúng đuwocj truy cập bằng cách sử dụng ấu @ ở phía trước, để truy cập chúng từ bên ngoài ta sử dụng public methods, nó được gọi là accessor methods
The accessor & setter Methods
Để sử dụng một biến ở bên ngoài class thì nớ phải được ịnh nghĩa ở bên bên trong accessor methods (giống như các methods getter). Ví Dụ:
# define a class
class Box
# constructor method
def initialize(w,h)
@width, @height = w, h
end
# accessor methods
def printWidth
@width
end
def printHeight
@height
end
end
# create an object
box = Box.new(10, 20)
# use accessor methods
x = box.printWidth()
y = box.printHeight()
puts "Width of the box is : #{x}"
puts "Height of the box is : #{y}"
The instance methods
The instance methods là methos được định nghĩa giống như bất cứ methods bình thường nào nhưng có sử dụng các biến instance.
# define a class
class Box
# constructor method
def initialize(w,h)
@width, @height = w, h
end
# instance method
def getArea
@width * @height
end
end
# create an object
box = Box.new(10, 20)
# call instance methods
a = box.getArea()
puts "Area of the box is : #{a}"
Class Variables, Class Constant
là biến được chia sẻ giữa các object thuộc class với nhau và được khai báo với kí hiệu @@. Ví Dụ:
class Box
# Initialize our class variables
@@count = 0
def initialize(w,h)
# assign instance avriables
@width, @height = w, h
@@count += 1
end
def self.printCount()
puts "Box count is : #@@count"
end
end
# create two object
box1 = Box.new(10, 20)
box2 = Box.new(30, 100)
# call class method to print box count
Box.printCount()
tương tự như vậy, class constance được share giữa những class với nhau.
All rights reserved