Kotlin nested class
1. Giới thiệu
Trong Java ta có thể viết một class bên trong thân của một class khác:
Java
Với Kotlin, ta cũng có thể làm tương tự:
Kotlin
Tuy nhiên, khi khai báo như trên, trong Kotlin, class Nested
sẽ không thể truy cập đến các phần tử của class Outer
chứa nó như trong Java. Để làm được điều đó, ta cần sử dụng từ khóa inner
trong Kotlin.
2. Inner class
Một class có thể được khai báo với từ khóa inner
có thể truy cập đến các phần tử của class chứa nó. Inner class mang một tham chiếu đến một đối tượng của class chứa nó:
Để trỏ đến outer class, ta sử dụng từ khóa this
với @label
như đã nói trong phần Biểu thức this.
3. Anonymous inner class (Lớp con vô danh)
Để khởi tạo anonymous inner class, chúng ta sử dụng [object expression]:
Nếu object được khởi tạo là một functional Java interface (một interface chỉ có duy nhất một method), chúng ta có thể sử dụng lambda và khai báo như sau: