- vừa được xem lúc

Làm quen với Kotlin - Extension

0 0 28

Người đăng: Giang Mai Thi

Theo Viblo Asia

Xin chào các bạn, hôm nay chúng ta sẽ tìm hiểu về một tính năng mới khác của Kotlin có tên là "Extension". Sử dụng extension, chúng ta sẽ có thể thêm hoặc xóa một số method function ngay cả khi không kế thừa hoặc sửa đổi chúng. Các phần mở rộng được giải quyết theo static. Nó không thực sự sửa đổi lớp hiện có, nhưng nó tạo ra một hàm có thể gọi bằng cách sử dụng dấu chấm trước tên hàm.

Function Extension

Trong phần mở rộng hàm, Kotlin cho phép định nghĩa một phương thức bên ngoài main class. Trong ví dụ sau, chúng ta sẽ thấy cách extension được triển khai ở level function.

class Alien{ var skills : String= "null" fun printMySkills(){ print(skills) } } fun main(args: Array<String>) { var a1= Alien() a1.skills="JAVA" //a1.printMySkills() var a2= Alien() a2.skills="SQL" //a2.printMySkills() var a3= Alien() a3.skills=a1.addMySkills(a2) a3.printMySkills() } fun Alien.addMySkills(a:Alien):String{ var a4=Alien() a4.skills=this.skills + " " +a.skills return a4.skills }

Trong ví dụ trên, chúng ta không có bất kỳ phương thức nào bên trong class "Alien" có tên là addMySkills(), tuy nhiên chúng ta vẫn đang implement cùng một phương thức ở một nơi khác bên ngoài class này, đây là điều kỳ diệu của extension.

Đoạn mã trên sẽ in ra kết quả như sau:

JAVA SQL

Object Extension

Kotlin cung cấp một cơ chế khác để triển khai static function của Java. Điều này có thể đạt được bằng cách sử dụng từ khóa "companion object". Sử dụng cơ chế này, chúng ta có thể tạo ra một đối tượng của một lớp bên trong một phương thức gốc và sau này chúng ta có thể gọi phương thức đó bằng cách sử dụng tham chiếu của tên lớp. Trong ví dụ sau, chúng ta sẽ tạo một "companion object":

fun main(args: Array<String>) { println("Heyyy!!!"+A.show()) } class A{ companion object{ fun show():String{ return("You are learning Kotlin from viblo.asia") } } }

Đoạn mã trên sẽ in ra kết quả như sau:

Heyyy!!! You are learning Kotlin from viblo.asia

Ví dụ trên có vẻ giống như static trong Java, tuy nhiên, trong real-time chúng ta đang tạo một đối tượng dưới dạng một biến thành viên của cùng lớp đó. Đây là lý do tại sao nó cũng được bao gồm trong thuộc tính extension và có thể được gọi cách khác là object extension. Về cơ bản, bạn đang mở rộng đối tượng của cùng một lớp để sử dụng một số hàm thành viên.

Mình xin phép dừng bài viết lại ở đây, bài viết bao gồm 1 chút lý thuyết và ví dụ minh họa, hi vọng điều này sẽ hữu ích. Cảm ơn các bạn.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Kotlin dễ ẹc - Lớp vs đối tượng: Object expression và Object declaration

Khi nào dùng. . Khi muốn tạo một đối tượng với những sự thay đổi nhỏ của lớp mà không phải khai báo tường minh lớp con của lớp đó. .

0 0 37

- vừa được xem lúc

Di chuyển, truyền dữ liệu giữa các màn hình trong kotlin android

Di chuyển và Truyền dữ liệu giữa các màn hình trong kotlin android. 1. Di chuyển giữa các màn hình. .

0 0 79

- vừa được xem lúc

Sử dụng Hibernate với Kotlin dựa trên Spring Boot

Trong bài viết sẽ mô phỏng các bước để sử dụng hibernate với Kotlin. Hibernate là một framework phụ vụ object-relational-mapping(ORM) trên JVM sử dụng để lưu trữ liên tục các Plain Old Java Object (POJOs) trong quan hệ cơ sở dữ liệu.

0 0 23

- vừa được xem lúc

Top 25 Lib and Projects của nửa đầu năm 2020 — Summer Edition

Năm 2020 đã qua, chúng ta hãy cùng ngồi điểm lại một số repo hay về Android trong năm vừa qua nhé . Và cùng đón 2021 nhiều niềm vui, may mắn hơn nha . 1. Pokedex.

0 0 28

- vừa được xem lúc

Simplifying APIs with coroutines and Flow

Bài viết này trình bày cách đơn giản hóa các API sử dụng coroutines và Flow cũng như cách tạo bộ điều hợp của riêng bạn bằng cách sử dụng các API pauseCancellableCoroutine và callbackFlow. Đối với những người thích đi sâu vào bên trong các quy trình, những API đó sẽ được mổ xẻ và bạn sẽ thấy chúng h

0 0 29

- vừa được xem lúc

Tìm hiểu về Android KTX

Mở đầu. Trong Google I/O 2018, Google đã giới thiệu Android Jetpack và điều này đã thay đổi cách phát triển một ứng dụng Android mạnh mẽ hiện đại.

0 0 28