<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Kotlin 類和對象 > 原文: [https://www.programiz.com/kotlin-programming/class-objects](https://www.programiz.com/kotlin-programming/class-objects) #### 在本文中,將向您介紹 Kotlin 中的面向對象編程。 您將學習什么是類,如何創建對象并在程序中使用它。 Kotlin 支持函數和面向對象的編程。 Kotlin 支持諸如*高階函數*,*函數類型*和 *lambda* 之類的功能,這使其成為函數編程風格的理想選擇。 您將在后面的章節中了解這些概念。 本文將重點介紹 Kotlin 中的面向對象的編程風格。 * * * ## 面向對象編程(OOP) 在面向對象的編程風格中,可以通過創建對象將復雜的問題分為較小的集合。 這些對象具有兩個特征: * 狀態 * 行為 讓我們舉幾個例子: 1. `Lamp`是對象 **狀態**:`on`或`off` **行為**:`turnOn`或`turnOff` 2. `Bicycle`是對象 **狀態**:`currentGear`,`twoWheels`,`numberOfGear`等 **行為**:`braking`,`accelerating`,`changingGears`等 您將繼續學習面向對象編程的詳細功能,例如:*數據封裝*,*繼承*和*多態*。 本文將重點介紹使事情保持簡單的基礎知識。 **推薦閱讀**: [什么是對象?](https://docs.oracle.com/javase/tutorial/java/concepts/object.html) * * * ## Kotlin 類 在 Kotlin 中創建對象之前,需要定義一個類。 類是對象的藍圖。 我們可以將類視為房子的草圖(原型)。 它包含有關地板,門,窗戶等的所有詳細信息。基于這些描述,我們建造了房屋。 房子是對象。 由于可以用相同的描述制作許多房屋,因此我們可以根據一個類創建許多對象。 * * * ### 如何在 Kotlin 中定義一個類? 要在 Kotlin 中定義一個類,請使用`class`關鍵字: ```kt class ClassName { // property // member function ... .. ... } ``` 這是一個例子: ```kt class Lamp { // property (data member) private var isOn: Boolean = false // member function fun turnOn() { isOn = true } // member function fun turnOff() { isOn = false } } ``` 在這里,我們定義了一個名為`Lamp`的類。 該類具有一個屬性`isOn`(以與變量相同的方式定義),并且具有兩個成員函數`turnOn()`和`turnOff()`。 **推薦閱讀**: [Kotlin 函數](https://kotlinlang.org/docs/reference/functions.html "Kotlin functions") 在 Kotlin 中,必須初始化屬性或將其聲明為`abstract`(**訪問**: *Kotlin 抽象類*,以了解更多信息)。 在上面的示例中,`isOn`屬性被初始化為`false`。 * * * 類,對象,屬性,成員函數等可以具有可見性修飾符。 例如,`isOn`屬性是私有的。 這意味著,只能從`Lamp`類內部更改`isOn`屬性。 其他可見性修飾符是: * `private` - 僅在類內部可見(可以訪問)。 * `public` - 隨處可見。 * `protected` - 類及其子類可見。 * `internal` - 模塊內的任何客戶端都可以訪問它們。 您稍后將在 [Kotlin 可見性修飾符](/kotlin-programming/visibility-modifiers "Kotlin visibility modifiers")文章中了解`protected`和`internal`修飾符。 如果未指定可見性修飾符,則默認為`public`。 在上述程序中,`turnOn()`和`turnOff()`成員函數是`public`,而`isOn`屬性是私有的。 * * * ### Kotlin 對象 定義類時,僅定義對象的規范; 沒有分配內存或存儲空間。 要訪問在類中定義的成員,您需要創建對象。 讓我們創建`Lamp`類的對象。 ```kt class Lamp { // property (data member) private var isOn: Boolean = false // member function fun turnOn() { isOn = true } // member function fun turnOff() { isOn = false } } fun main(args: Array<String>) { val l1 = Lamp() // create l1 object of Lamp class val l2 = Lamp() // create l2 object of Lamp class } ``` 該程序創建了`Lamp`類的兩個對象`l1`和`l2`。 兩個燈`l1`和`l2`的`on`屬性為`false`。 * * * ### 如何訪問成員? 您可以使用`.`表示法訪問類的屬性和成員函數。 例如, ```kt l1.turnOn() ``` 該語句為`l1`對象調用`turnOn()`函數。 讓我們再舉一個例子: ```kt l2.isOn = true ``` 在這里,我們試圖將`true`分配給`l2`對象的`isOn`屬性。 請注意,`isOn`屬性為`private`,如果您嘗試從類外部訪問`isOn`,則會引發異常。 * * * ### 示例:Kotlin 類和對象 ```kt class Lamp { // property (data member) private var isOn: Boolean = false // member function fun turnOn() { isOn = true } // member function fun turnOff() { isOn = false } fun displayLightStatus(lamp: String) { if (isOn == true) println("$lamp lamp is on.") else println("$lamp lamp is off.") } } fun main(args: Array<String>) { val l1 = Lamp() // create l1 object of Lamp class val l2 = Lamp() // create l2 object of Lamp class l1.turnOn() l2.turnOff() l1.displayLightStatus("l1") l2.displayLightStatus("l2") } ``` 運行該程序時,輸出為: ```kt l1 Lamp is on. l2 Lamp is off. ``` 在上面的程序中 * `Lamp`類已創建。 * 該類具有`isOn`屬性和三個成員函數`turnOn()`,`turnOff()`和`displayLightStatus()`。 * 在`main()`函數中創建了`Lamp`類的兩個對象`l1`和`l2`。 * 在此,使用`l1`對象:`l1.turnOn()`調用`turnOn()`函數。 此方法將`l1`對象的`isOn`實例變量設置為`true`。 * 并且,使用`l2`對象:`l1.turnOff()`調用`turnOff()`函數。 此方法將`l2`對象的`isOff`實例變量設置為`false`。 * 然后,針對`l1`和`l2`對象調用`displayLightStatus()`函數,根據這些對象的`On`屬性是`true`還是`false`。 請注意,`isOn`屬性已初始化為該類內部的`false`。 創建該類的對象時,該對象的`isOn`屬性將自動初始化為`false`。 因此,不需要`l2`對象調用`turnOff()`將`isOn`屬性設置為`false`。 例如: ```kt class Lamp { // property (data member) private var isOn: Boolean = false // member function fun turnOn() { isOn = true } // member function fun turnOff() { isOn = false } fun displayLightStatus() { if (isOn == true) println("lamp is on.") else println("lamp is off.") } } fun main(args: Array<String>) { val lamp = Lamp() lamp.displayLightStatus() } ``` 運行該程序時,輸出為: ```kt lamp is off. ``` * * * 本文只是 Kotlin 中面向對象編程的介紹。 依次檢查這些章節以了解更多信息: * *Kotlin 構造器和初始化器* * *Kotlin `this`關鍵字* * *Kotlin 嵌套類*
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看