Class and Data Class in Kotlin

I. CLASS

    • Khai báo:

      • Giống như trong Java, class trong Kotlin được khai báo với từ khóa class.

      • Ví dụ về khai báo lớp nhân viên:
         

    • Hàm khởi tạo:

      • Như các bạn đã biết, hàm khởi tạo (constructor) dùng để khởi tạo giá trị cho các thuộc tính khi tạo 1 thể hiện của một lớp. Và một lớp không nhất thiết phải có hàm khởi tạo. 

      • Một class trong Kotlin có thể chứa một hàm khởi tạo chính (primary constructor), một hoặc nhiều hàm khởi tạo thứ cấp (secondary constructor)

      • Cú pháp khai báo hàm khởi tạo chính:
      • Cú pháp khai báo hàm khởi tạo thứ cấp:
        • Để khai báo ta dùng từ khóa constructor

        • Với khai báo như trên thì class NhanVien có 2 hàm khởi tạo. Một hàm khởi tạo có 2 tham số và một hàm khởi tạo không có tham số. Và đoạn code this("","") với mục đích gọi hàm khởi tạo chính. Đây là xử lí bắt buộc.

    • Thuộc tính:

      • Có 2 cách để khai báo thuộc tính với Kotlin, một là khai báo sử dụng hàm khởi tạo chính, hai là khai báo theo cú pháp sau:

      • Trong đó từ khóa lateinit để xác định thuộc tính sẽ được khởi tạo giá trị ban đầu sau. Nếu không dùng từ khóa này, thuộc tính phải được gán giá trị tại thời điểm khai báo.

      • Trong Kotlin có 4 access modifier bao gồm private, protected, internalpublic. Khi khai báo thuộc tính hay phương thức mà ta không chỉ định access modifier thì nó sẽ được mặc định là public. Dưới đây là bảng giải thích các phạm vi truy cập:

    • Ví dụ:

      • Tạo 1 hàm:

      • Khởi tạo trong main:

      • Hiển thị:

II. DATA CLASS

    • Cú pháp:

      • Ở Kotlin, một Data Class được khai báo như sau:

      • Mỗi khi chúng ta khai báo như vậy. Class User sẽ được trình biên dịch tự động sinh ra các đoạn code cho các hàm.
        • getter/setter

        • equals()/hashcode()

        • toString()

        • componentN()

        • copy()

      • Tuy nhiên, data class cũng yêu cầu một số quy tắc nhất định để đảm bảo những đoạn code sinh ra có tính nhất quán và thực hiện đúng ý nghĩa:
        • Hàm constructor chính phải có ít nhất một tham số truyền vào.

        • Tất cả các tham số truyền vào trong constructor phải được khai báo là var hoặc val.

        • Những data class không thể là abstract, open, seal hay inner.

        • Nếu sử dụng Kotlin phiên bản trước 1.1, Data class chỉ có thể implement các interface.

        • Từ Kotlin 1.1 trở đi, Data class có thể kế thừa những class khác.





Đức Long



Nhận xét

Bài đăng phổ biến từ blog này

Nested and Inner Class in Kotlin

Callback In Kotlin