Kotlin - Kiểm soát khả năng hiển thị

Trong chương này, chúng ta sẽ tìm hiểu về các bổ ngữ khác nhau có sẵn trong ngôn ngữ Kotlin. Access modifierđược sử dụng để hạn chế việc sử dụng các biến, phương thức và lớp được sử dụng trong ứng dụng. Giống như các ngôn ngữ lập trình OOP khác, công cụ sửa đổi này có thể áp dụng ở nhiều nơi như trong phần đầu lớp hoặc phần khai báo phương thức. Có bốn công cụ sửa đổi quyền truy cập có sẵn trong Kotlin.

Riêng tư

Các lớp, phương thức và gói có thể được khai báo bằng một công cụ sửa đổi riêng. Khi bất kỳ thứ gì được khai báo là riêng tư, thì nó sẽ có thể truy cập được trong phạm vi ngay lập tức của nó. Ví dụ, một gói riêng tư có thể được truy cập trong tệp cụ thể đó. Một lớp hoặc giao diện riêng chỉ có thể được truy cập bởi các thành viên dữ liệu của nó, v.v.

private class privateExample {
   private val i = 1
   private val doSomething() {
   }
}

Trong ví dụ trên, lớp “privateExample” và biến i cả hai chỉ có thể truy cập được trong cùng một tệp Kotlin, nơi nó được đề cập vì tất cả chúng đều được khai báo là riêng tư trong khối khai báo.

Được bảo vệ

Protected là một công cụ sửa đổi quyền truy cập khác cho Kotlin, hiện không có sẵn để khai báo cấp cao nhất giống như bất kỳ gói nào không thể được bảo vệ. Lớp hoặc giao diện được bảo vệ chỉ hiển thị đối với lớp con của nó.

class A() {
   protected val i = 1
}
class B : A() {
   fun getValue() : Int {
      return i
   }
}

Trong ví dụ trên, biến “i” được khai báo là được bảo vệ, do đó, nó chỉ hiển thị với lớp con của nó.

Nội bộ

Internal là một công cụ sửa đổi mới được thêm vào trong Kotlin. Nếu bất kỳ thứ gì được đánh dấu là nội bộ, thì trường cụ thể đó sẽ nằm trong trường nội bộ. Gói nội bộ chỉ hiển thị bên trong mô-đun mà nó được triển khai. Giao diện lớp bên trong chỉ hiển thị bởi lớp khác có mặt bên trong cùng một gói hoặc mô-đun. Trong ví dụ sau, chúng ta sẽ thấy cách triển khai một phương thức nội bộ.

class internalExample {
   internal val i = 1
   internal fun doSomething() {
   }
}

Trong ví dụ trên, phương thức có tên “doSomething” và biến được đề cập là nội bộ, do đó, hai trường này chỉ có thể truy cập bên trong gói mà nó được khai báo.

Công cộng

Công cụ sửa đổi công khai có thể truy cập được từ bất kỳ đâu trong không gian làm việc của dự án. Nếu không có công cụ sửa đổi quyền truy cập nào được chỉ định, thì theo mặc định, nó sẽ nằm trong phạm vi công khai. Trong tất cả các ví dụ trước đây của chúng tôi, chúng tôi đã không đề cập đến bất kỳ công cụ sửa đổi nào, do đó, tất cả chúng đều thuộc phạm vi công khai. Sau đây là một ví dụ để hiểu thêm về cách khai báo một biến hoặc phương thức public.

class publicExample {
   val i = 1
   fun doSomething() {
   }
}

Trong ví dụ trên, chúng tôi chưa đề cập đến bất kỳ công cụ sửa đổi nào, do đó tất cả các phương thức và biến này theo mặc định là public.