Lớp và Đối tượng Kotlin (Có Ví dụ)

Trong bài viết này, bạn sẽ được giới thiệu về Lập trình hướng đối tượng trong Kotlin. Bạn sẽ học lớp là gì, cách tạo các đối tượng và sử dụng nó trong chương trình của bạn.

Kotlin hỗ trợ cả lập trình chức năng và hướng đối tượng.

Kotlin hỗ trợ các tính năng như hàm bậc cao hơn, kiểu hàm và lambdas, điều này làm cho nó trở thành một lựa chọn tuyệt vời để làm việc theo phong cách lập trình hàm. Bạn sẽ tìm hiểu về khái niệm này trong các chương sau. Bài viết này sẽ tập trung vào phong cách lập trình hướng đối tượng trong Kotlin.

Lập trình hướng đối tượng (OOP)

Trong phong cách lập trình hướng đối tượng, bạn có thể chia một vấn đề phức tạp thành các tập hợp nhỏ hơn bằng cách tạo các đối tượng.

Những đối tượng này có hai đặc điểm:

  • tiểu bang
  • hành vi

Hãy lấy một vài ví dụ:

  1. Đèn là một vật
    • Nó có thể ở trạng thái bật hoặc tắt.
    • Bạn có thể turn onturn offđèn (hành vi).
  2. Xe đạp là một vật
    • Nó có các trạng thái bánh răng hiện tại, hai bánh xe, số bánh răng, v.v.
    • Nó có hành vi phanh, tăng tốc, thay đổi bánh răng, v.v.

Bạn sẽ tìm hiểu về các tính năng chi tiết của lập trình hướng đối tượng như: đóng gói dữ liệu, kế thừa và đa hình khi chúng ta tiếp tục. Bài viết này sẽ tập trung vào những điều cơ bản để giữ mọi thứ đơn giản.

Đề xuất đọc: Đối tượng là gì?

Lớp Kotlin

Trước khi bạn tạo các đối tượng trong Kotlin, bạn cần xác định một lớp.

Một lớp là một bản thiết kế cho đối tượng.

Chúng ta có thể coi lớp học như một bản phác thảo (nguyên mẫu) của một ngôi nhà. Nó chứa tất cả các chi tiết về sàn nhà, cửa ra vào, cửa sổ, vv Dựa trên những mô tả này, chúng tôi xây dựng ngôi nhà. Ngôi nhà là đối tượng.

Vì, nhiều ngôi nhà có thể được tạo từ cùng một mô tả, chúng ta có thể tạo nhiều đối tượng từ một lớp.

Làm thế nào để xác định một lớp trong Kotlin?

Để xác định một lớp trong Kotlin, classtừ khóa được sử dụng:

 class ClassName (// thuộc tính // hàm thành viên…) 

Đây là một ví dụ:

 class Lamp (// thuộc tính (thành viên dữ liệu) private var isOn: Boolean = false // hàm thành viên fun turnOn () (isOn = true) // hàm thành viên fun turnOff () (isOn = false))

Ở đây, chúng tôi đã định nghĩa một lớp có tên là Đèn.

Lớp có một thuộc tính isOn (được định nghĩa theo cách giống như biến), và hai hàm thành viên turnOn()turnOff().

Đọc đề xuất: Các hàm Kotlin

Trong Kotlin, thuộc tính phải được khởi tạo hoặc phải được khai báo abstract( Truy cập: Lớp Tóm tắt Kotlin để tìm hiểu thêm). Trong ví dụ trên, thuộc tính isOn được khởi tạo thành false.

Các lớp, đối tượng, thuộc tính, chức năng thành viên, v.v. có thể có các công cụ sửa đổi khả năng hiển thị. Ví dụ, thuộc tính isOn là riêng tư. Điều này có nghĩa là, thuộc tính isOn chỉ có thể được thay đổi từ bên trong lớp Đèn.

Các công cụ sửa đổi khả năng hiển thị khác là:

  • private - chỉ hiển thị (có thể được truy cập) từ bên trong lớp.
  • public - hiển thị ở mọi nơi.
  • protected - hiển thị cho lớp và lớp con của nó.
  • internal - bất kỳ máy khách nào bên trong mô-đun đều có thể truy cập chúng.

Bạn sẽ tìm hiểu về protectedvà công cụ internalsửa đổi sau trong bài viết công cụ sửa đổi khả năng hiển thị Kotlin.

If you do not specify the visibility modifier, it will be public by default.

In the above program, turnOn() and turnOff() member functions are public whereas, isOn property is private.

Kotlin Objects

When class is defined, only the specification for the object is defined; no memory or storage is allocated.

To access members defined within the class, you need to create objects. Let's create objects of Lamp class.

 class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) ) fun main(args: Array) ( val l1 = Lamp() // create l1 object of Lamp class val l2 = Lamp() // create l2 object of Lamp class )

This program creates two objects l1 and l2 of class Lamp. The isOn property for both lamps l1 and l2 will be false.

How to access members?

You can access properties and member functions of a class by using . notation. For example,

 l1.turnOn()

This statement calls turnOn() function for l1 object.

Let's take another example:

 l2.isOn = true

Here, we tried to assign true to isOn property of l2 object. Note that, isOn property is private, and if you try to access isOn from outside the class, an exception is thrown.

Example: Kotlin Class and Object

 class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) fun displayLightStatus(lamp: String) ( if (isOn == true) println("$lamp lamp is on.") else println("$lamp lamp is off.") ) ) fun main(args: Array) ( val l1 = Lamp() // create l1 object of Lamp class val l2 = Lamp() // create l2 object of Lamp class l1.turnOn() l2.turnOff() l1.displayLightStatus("l1") l2.displayLightStatus("l2") )

When you run the program, the output will be:

 l1 Lamp is on. l2 Lamp is off.

In the above program,

  • Lamp class is created.
  • The class has a property isOn and three member functions turnOn(), turnOff() and displayLightStatus().
  • Two objects l1 and l2 of Lamp class are created in the main() function.
  • Here, turnOn() function is called using l1 object: l1.turnOn(). This method sets isOn instance variable of l1 object to true.
  • And, turnOff() function is called using l2 object: l1.turnOff(). This method sets isOff instance variable of l2 object to false.
  • Sau đó, displayLightStatus()hàm được gọi cho các đối tượng l1 và l2 in ra thông báo thích hợp tùy thuộc vào thuộc tính isOn có đúng hay không false.

Lưu ý rằng, thuộc tính isOn được khởi tạo falsebên trong lớp. Khi một đối tượng của lớp được tạo, thuộc tính isOn cho đối tượng được khởi tạo falsetự động. Vì vậy, đối tượng l2 không cần thiết phải gọi turnOff()để đặt thuộc tính isOn thành false.

Ví dụ:

 class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) fun displayLightStatus() ( if (isOn == true) println("lamp is on.") else println("lamp is off.") ) ) fun main(args: Array) ( val lamp = Lamp() lamp.displayLightStatus() ) 

Khi bạn chạy chương trình, đầu ra sẽ là:

 đèn tắt.

Bài viết này chỉ là giới thiệu về lập trình hướng đối tượng trong Kotlin. Kiểm tra các chương này theo trình tự để tìm hiểu thêm:

  • Kotlin Constructors and Initializers
  • Kotlin Từ khóa này
  • Lớp lồng nhau Kotlin

thú vị bài viết...