Class and Data Class in Kotlin
I. CLASS
- Khai báo:
- 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)
- 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, internal và public. 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:
II. DATA CLASS
- Cú pháp:
- 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
Đăng nhận xét