Sunday, March 28, 2021

Lập trình kotlin - Class & Object trong kotlin

Lập trình kotlin - Class & Object trong kotlin

Trong chương này, chúng ta sẽ tìm hiểu những kiến thức cơ bản về Lập trình hướng đối tượng (OOP) sử dụng Kotlin. Chúng ta sẽ tìm hiểu về lớp và đối tượng của nó cũng như cách chơi với đối tượng đó. Theo định nghĩa của OOP, một lớp là bản thiết kế của một thực thể thời gian chạy và đối tượng là trạng thái của nó, bao gồm cả hành vi và trạng thái của nó. 

Class & Object trong kotlin

Trong Kotlin, khai báo lớp bao gồm tiêu đề lớp và thân lớp được bao quanh bởi dấu ngoặc nhọn, tương tự như Java.

Class myClass { // class Header 


   // class Body

}

Giống như Java, Kotlin cũng cho phép tạo một số đối tượng của một lớp và bạn có thể tự do bao gồm các thành viên và chức năng của lớp đó. Chúng ta có thể kiểm soát khả năng hiển thị của các biến thành viên trong lớp bằng cách sử dụng các từ khóa khác nhau mà chúng ta sẽ học trong Chương 10 - Kiểm soát khả năng hiển thị. Trong ví dụ sau, chúng ta sẽ tạo một lớp và đối tượng của nó mà qua đó chúng ta sẽ truy cập các thành viên dữ liệu khác nhau của lớp đó

class myClass {

   // property (data member)

   private var name: String = "Tutorials.point"

   

   // member function

   fun printMe() {

      print("You are at the best Learning website Named-"+name)

   }

}

fun main(args: Array<String>) {

   val obj = myClass() // create obj object of myClass class

   obj.printMe()

}

Lớp lồng nhau

Theo định nghĩa, khi một lớp đã được tạo bên trong một lớp khác, thì nó được gọi là một lớp lồng nhau. Trong Kotlin, lớp lồng nhau theo mặc định là tĩnh, do đó, nó có thể được truy cập mà không cần tạo bất kỳ đối tượng nào của lớp đó. Trong ví dụ sau, chúng ta sẽ thấy cách Kotlin diễn giải lớp lồng nhau của chúng ta.

fun main(args: Array<String>) {

   val demo = Outer.Nested().foo() // calling nested class method

   print(demo)

}

class Outer {

   class Nested {

      fun foo() = "Welcome to The TutorialsPoint.com"

   }

}

Inner Class

Khi một lớp lồng nhau được đánh dấu là “bên trong”, thì nó sẽ được gọi là lớp Bên trong. Một lớp bên trong có thể được truy cập bởi thành viên dữ liệu của lớp bên ngoài. Trong ví dụ sau, chúng ta sẽ truy cập thành viên dữ liệu của lớp ngoài.

fun main(args: Array<String>) {

   val demo = Outer().Nested().foo() // calling nested class method

   print(demo)

}

class Outer {

   private val welcomeMessage: String = "Welcome to the TutorialsPoint.com"

   inner class Nested {

      fun foo() = welcomeMessage

   }

}

Anonymous Inner Class

Lớp bên trong ẩn danh là một khái niệm khá hay khiến cuộc sống của một lập trình viên trở nên rất dễ dàng. Bất cứ khi nào chúng ta đang triển khai một giao diện, khái niệm khối bên trong ẩn danh sẽ xuất hiện. Khái niệm tạo một đối tượng của giao diện sử dụng tham chiếu đối tượng thời gian chạy được gọi là lớp ẩn danh. Trong ví dụ sau, chúng ta sẽ tạo một giao diện và chúng ta sẽ tạo một đối tượng của giao diện đó bằng cách sử dụng cơ chế lớp Anonymous Inner.

fun main(args: Array<String>) {

   var programmer :Human = object:Human // creating an instance of the interface {

      override fun think() { // overriding the think method

         print("I am an example of Anonymous Inner Class ")

      }

   }

   programmer.think()

}

interface Human {

   fun think()

}

No comments:

Post a Comment