Nested and Inner Class in Kotlin

I. Nested Class

  • Trong Kotlin, một Class có thể nằm trong một class khác, đó gọi là Nested Class


  • Để truy cập vào các phương thức hoặc thuộc tính của Nested Class, bạn cần gọi theo cú pháp ClassA.ClassNested().fun trong đó ClassA là tên class chứa, ClassNested là tên class nằm trong và fun là tên phương thức hoặc thuộc tính của class nằm trong
  • Bạn cũng có thể cho Interface nằm trong Class, Class nằm trong Interface hoặc Interface nằm trong Interface


II. Inner Class

  • Một class bao chứa một class khác bên trong có thể truy cập được đến các phương thức hoặc thuộc tính của class nằm trong nó, tuy nhiên điều ngược lại không xảy ra. Vì vậy, để class nằm trong có thể sử dụng các thuộc tính riêng của class bao chứa nó, chúng ta phải sử dụng từ khóa inner  trước tên của class nằm bên trong



III. Những lý do cho việc sử dụng Nested Class

Những lý do cho việc sử dụng nested classes bao gồm:

  • Nhóm các class chỉ được sử dụng ở một chỗ lại với nhau một cách hợp lý : Nếu một class chỉ dùng được từ một class khác, thì sẽ hợp lý khi gắn nó vào trong class kia và giữ chúng cùng nhau. Việc lồng vào như vậy sẽ giúp cho package được tổ chức hợp lý hơn.
  • Giúp tăng sự gọn gàng: Xem xét 2 top-level class, A và B. B cần truy cập đến những member của A tuy nhiên những member đó lại được khai báo là private. Bằng việc giấu class B ở bên trong A, những member của A có thể khai báo là private mà B vẫn có thể truy cập được chúng. Thêm nữa, B có thể được giấu với phần còn lại của project.
  • Có thể giúp code dễ đọc và dễ maintain hơn: Lồng những class nhỏ vào bên trong top-level class giúp cho những dòng code ở gần hơn với nơi chúng được sử dụng.


Huy Phạm





Nhận xét

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

Callback In Kotlin

Class and Data Class in Kotlin