Kotlin Visibility Modifier

Trong bài viết này, bạn sẽ tìm hiểu về cả 4 công cụ sửa đổi khả năng hiển thị trong Kotlin và cách chúng hoạt động trong các tình huống khác nhau.

Công cụ sửa đổi khả năng hiển thị là các từ khóa thiết lập khả năng hiển thị (khả năng truy cập) của các lớp, đối tượng, giao diện, hàm tạo, chức năng, thuộc tính và bộ thiết lập của chúng. (Bạn không thể đặt công cụ sửa đổi mức độ hiển thị của getters vì chúng luôn có cùng mức độ hiển thị như của thuộc tính.)

Trong Kotlin Lớp và Đối tượng bài viết, bạn đã học về bổ tầm nhìn publicprivatengắn gọn. Bạn sẽ tìm hiểu thêm về hai công cụ sửa đổi khả năng hiển thị protectedinternal(cũng như publicprivate) một cách chi tiết.

Bộ điều chỉnh khả năng hiển thị bên trong gói

Một gói tổ chức một tập hợp các chức năng, thuộc tính và lớp, đối tượng và giao diện có liên quan. Đề xuất đọc: Gói Kotlin

bổ nghĩa Sự miêu tả
công cộng tuyên bố hiển thị ở mọi nơi
riêng tư hiển thị bên trong tệp chứa khai báo
nội bộ hiển thị bên trong cùng một mô-đun (một tập hợp các tệp Kotlin được biên dịch cùng nhau)
được bảo vệ không có sẵn cho các gói (được sử dụng cho các lớp con)

Lưu ý: Nếu công cụ sửa đổi khả năng hiển thị không được chỉ định, thì nó sẽ là publicmặc định.

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

 // tên tệp: hello.kt package test fun function1 () () // công khai theo mặc định và hiển thị ở mọi nơi private fun function2 () () // hiển thị bên trong hello.kt internal fun function3 () () // hiển thị bên trong cùng mô-đun var name = "Foo" // hiển thị ở mọi nơi get () = field // hiển thị bên trong hello.kt (giống như thuộc tính của nó) private set (value) (// hiển thị bên trong hello.kt field = value) private class class1 () // hiển thị bên trong hello.kt

Công cụ sửa đổi khả năng hiển thị bên trong các lớp và giao diện

Đây là cách các công cụ sửa đổi khả năng hiển thị hoạt động cho các thành viên (hàm, thuộc tính) được khai báo bên trong một lớp:

bổ nghĩa Sự miêu tả
công cộng hiển thị cho bất kỳ khách hàng nào có thể thấy lớp khai báo
riêng tư chỉ hiển thị bên trong lớp học
được bảo vệ hiển thị bên trong lớp và các lớp con của nó
nội bộ hiển thị cho bất kỳ máy khách nào bên trong mô-đun có thể thấy lớp khai báo

Lưu ý: Nếu bạn ghi đè một protectedthành viên trong lớp dẫn xuất mà không chỉ định khả năng hiển thị của nó, thì khả năng hiển thị của nó cũng sẽ như vậy protected.

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

 open class Base () (var a = 1 // public theo mặc định private var b = 2 // private cho Base class protected mở val c = 3 // hiển thị với Base và class Derived internal val d = 4 // hiển thị bên trong cùng một mô-đun được bảo vệ vui vẻ e () () // hiển thị cho lớp Cơ sở và lớp Bắt nguồn) Bắt nguồn: Base () (// a, c, d và e () của lớp Cơ sở hiển thị // b không hiển thị ghi đè val c = 9 // c được bảo vệ) fun main (args: Array) (val base = Base () // base.a và base.d hiển thị // base.b, base.c và base .e () không nhìn thấy được. val. = Derived () // có nguồn gốc.c không hiển thị) 

Thay đổi khả năng hiển thị của một hàm tạo

Theo mặc định, khả năng hiển thị của một hàm tạo là public. Tuy nhiên, bạn có thể thay đổi nó. Đối với điều đó, bạn cần phải thêm constructortừ khóa một cách rõ ràng .

Hàm tạo là publicmặc định trong ví dụ dưới đây:

 Class Test (val a: Int) (// code) 

Đây là cách bạn có thể thay đổi khả năng hiển thị của nó.

 class Test private constructor (val a: Int) (// code)

Hàm tạo đây private.

Lưu ý: Trong Kotlin, các hàm, biến và lớp cục bộ không thể có các công cụ sửa đổi khả năng hiển thị.

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