Kotlin Getters and Setters (Có Ví dụ)

Trong bài viết này, bạn sẽ học cách sử dụng getters và setters trong Kotlin với sự trợ giúp của một ví dụ.

Trước khi bạn tìm hiểu về getters và setter, hãy nhớ kiểm tra lớp và đối tượng Kotlin.

Trong lập trình, getters được sử dụng để nhận giá trị của thuộc tính. Tương tự, bộ định vị được sử dụng để cài đặt giá trị của thuộc tính.

Trong Kotlin, getters và setters là tùy chọn và được tạo tự động nếu bạn không tạo chúng trong chương trình của mình.

Getters và setters hoạt động như thế nào?

Đoạn mã sau trong Kotlin

 class Person (var name: String = "defaultValue")

tương đương với

 class Person (var name: String = "defaultValue" // getter get () = field // setter set (value) (field = value))

Khi bạn khởi tạo đối tượng của Personlớp và khởi tạo thuộc tính tên, nó sẽ được chuyển đến giá trị tham số setters và đặt trường thành giá trị.

 val p = Person () p.name = "jack"

Bây giờ, khi bạn truy cập thuộc tính tên của đối tượng, bạn sẽ nhận được trường vì mã get() = field.

 println ("$ (p.name)")

Đây là một ví dụ hoạt động:

 fun main(args: Array) ( val p = Person() p.name = "jack" println("$(p.name)") ) class Person ( var name: String = "defaultValue" get() = field set(value) ( field = value ) )

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

 giắc cắm 

Đây là cách getters và setters hoạt động theo mặc định. Tuy nhiên, bạn có thể thay đổi giá trị của thuộc tính (sửa đổi giá trị) bằng cách sử dụng getters và setters.

Ví dụ: Thay đổi giá trị của thuộc tính

 fun main(args: Array) ( val maria = Girl() maria.actualAge = 15 maria.age = 15 println("Maria: actual age = $(maria.actualAge)") println("Maria: pretended age = $(maria.age)") val angela = Girl() angela.actualAge = 35 angela.age = 35 println("Angela: actual age = $(angela.actualAge)") println("Angela: pretended age = $(angela.age)") ) class Girl ( var age: Int = 0 get() = field set(value) ( field = if (value = 18 && value <= 30) value else value-3 ) var actualAge: Int = 0 )

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

 Maria: tuổi thực = 15 Maria: tuổi giả = 18 Angela: tuổi thực = 35 Angela: tuổi giả = 32

Ở đây, thuộc tính realAge hoạt động như mong đợi.

Tuy nhiên, có logic bổ sung là bộ định tuyến để sửa đổi giá trị của thuộc tính tuổi.

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