<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      大創項目個人周報(2024.7.15—2024.7.21)

      本周個人情況匯報

      一、搭建開發環境

      1.下載Android Studio
      1
      2.運行第一個程序
      2

      二、入門Kotlin語言

      1.打印語句的操作,用println()函數

      fun main() {
          println("Hello World!")
      }
      

      2.變量的定義:在Kotlin中定義變量只有以如下兩種方式定義

      var [變量名稱] : [數據類型]
      val [變量名稱] : [數據類型]
      
      • val用來聲明一個不可變的變量,var用來聲明一個可變的變量。
      • Kotlin編譯器會自動根據變量所賦的值推導出變量自身的類型
      • 對于要延遲賦值的變量,可以顯式聲明其類型,如:
      var a : Int = 10
      

      3.數字類型的變量

      類型 最大值 最小值
      Byte 8 -128 127
      Short 16 -32768 32767
      Int 32 -2,147,483,648 (-2^31 ) 2,147,483,647(2^31 - 1)
      Long 64 -9,223,372,036,854,775,808 (-2^63) 9,223,372,036,854,775,807(2^63-1)
      • 除了整數類型外,Kotlin還為無符號整數提供以下類型:

      UByte:一個無符號8位整數,范圍從0到255
      UShort:無符號16位整數,范圍從0到65535
      UInt:一個無符號32位整數,范圍從0到2^32 - 1
      ULong:一個無符號64位整數,范圍從0到2^64 - 1

      • 要注意的是,在Long類型與無符號類型里,定義的數字后面要加上如L、UL、U來區分
      類型 大小(位) 符號與尾數位數 階碼位數 小數位數
      Float 32 24 8 6-7
      Double 64 53 11 15-16
      • 數字類型變量的計算 有 + - * / % ++ -- += -= *= /= %=
        等,悉如C語言。整數的位運算操作,可以直接在二進制層面上與數字表示的位進行操作,不過只適用于Int和Long類型的數據:

      shl(bits)– 有符號左移
      shr(bits)– 有符號右移
      ushr(bits)– 無符號右移
      and(bits)– 按位與
      or(bits)– 按位或
      xor(bits)– 按位異或
      inv()– 取反

      4.字符串類型
      Kotlin中的字符串,有專門的類型,其操作較之C語言更加方便。

      • 可以在字符串里儲存多行的字符
      val text = "Hello\nWorld"
      val text = """
                  Hello
                  hello
                  World
                  """
      
      • 可以將字符串拼接使用
          val s1 = "Hello"
          val s2 = "World!"
          val str = s1 + s2//字符串與字符串拼接
      
          val a = 10
          val text = "這是拼接的值" + a//字符串與其他類型拼接,但只能被拼接的類型在后
          
          val text = "這是拼接的值$a"
          val text = "$a 這是拼接的值"http://$為模版表達式,可以直接將后面跟著的變量或表達式以字符串形式替換到這個位置
          val text = "${a}這是拼接的值"
      

      5.流程控制

      • if條件語句
      if (條件判斷) 判斷成功執行的代碼;
      

      Kotlin中的if語句是可以有返回值的,故可做如下操作

      val value == if(num1 > num2){
          num1
      }
      else{
          num2
      }
      
      • when語句
        when定義具有多個分支的條件表達式。類似C語言中的switch語句,作如下形式:
      when (條件) {
          匹配值1 -> 代碼...   
          匹配值2 -> 代碼...   
          else -> {
              代碼...    
          }
      }
      
      • for循環
      fun main() {
          for (i in 1..3)  {
              println("666")
          }
          for (i in 0 until 10 step 2)  {
              println("666")
          }
      
          for (i in 0 downTo 10 step 2)  {
              println("666")
          }
      }
      
      • while循環
        大致與C語言相同

      三、函數

      函數形式如下,可以以Unit作返回值類型作無返回值函數,也可以定義遞歸函數。

      fun 函數名稱([函數參數...]): 返回值類型 {
          //函數體
      }
      

      在函數內部也可以定義函數

      四、類

      在Kotlin中,可以定義一個類,然后進一步創建許多這個類的實例對象。可以定義如下:

      class Person {
          var name = ""
          var age = 0
          fun eat(){
              println(name + " is eating.He is " + age + " years old.")
          }
      }
      

      對對象的操作:

      fun main(){
          val p = Person()
          p.name="Jack"
          p.age=19
          p.eat()
      }
      

      本周遇到的問題及利用chatGPT等AI工具的解決過程

      在本周的學習中,學習類時對不同類的定義方法不太分得清楚,故利用AI解答。
      Q:在Kotlin語言中,類的定義可以如何定義?請給出具體的不同的定義方法
      A:在Kotlin語言中,類的定義可以通過以下幾種方式進行定義:

      1. 基本類定義

      class MyClass {
          // 類的成員變量、方法等定義
      }
      

      這是最基本的類定義方式,其中MyClass是類的名稱。

      2. 帶有構造函數的類定義

      class MyClass constructor(param1: Type1, param2: Type2) {
          // 類的成員變量、方法等定義
      }
      

      在構造函數中聲明了參數,可以根據需要指定參數的類型。

      另一種簡化的方式是使用constructor關鍵字可以省略:

      class MyClass(param1: Type1, param2: Type2) {
          // 類的成員變量、方法等定義
      }
      

      3. 帶有初始化塊的類定義

      class MyClass {
          init {
              // 初始化塊中的代碼
          }
      
          // 類的成員變量、方法等定義
      }
      

      初始化塊中的代碼會在類的實例化過程中執行,用于初始化類的成員變量等操作。

      4. 帶有繼承的類定義

      open class ParentClass {
          // 父類的成員變量、方法等定義
      }
      
      class ChildClass : ParentClass() {
          // 子類的成員變量、方法等定義
      }
      

      ChildClass繼承自ParentClass,通過冒號(:)來實現繼承關系。

      5. 帶有接口實現的類定義

      interface MyInterface {
          // 接口定義
      }
      
      class MyClass : MyInterface {
          // 類的成員變量、方法等定義
      }
      

      MyClass實現了MyInterface接口,通過冒號(:)來實現接口的實現關系。

      這些是Kotlin中類的幾種定義方式,可以根據需求選擇適合的方式進行類的定義。
      Q:可以通過具體的實例演示一下后兩種定義的方式嗎?可以就實例說明一下它們的區別嗎?
      A:當然可以!我將為你提供一個具體的示例來說明繼承和接口實現的區別。

      open class Animal(val name: String) {
          open fun makeSound() {
              println("$name makes a sound.")
          }
      }
      
      interface Swimmer {
          fun swim()
      }
      
      class Dog(name: String) : Animal(name), Swimmer {
          override fun makeSound() {
              println("$name barks.")
          }
      
          override fun swim() {
              println("$name swims.")
          }
      }
      
      class Fish(name: String) : Animal(name), Swimmer {
          override fun makeSound() {
              println("$name doesn't make a sound.")
          }
      
          override fun swim() {
              println("$name swims.")
          }
      }
      

      在上面的示例中,我們定義了一個Animal類作為父類,它有一個name屬性和一個makeSound()方法。然后我們定義了一個Swimmer接口,其中包含一個swim()方法。

      接下來,我們定義了兩個子類:DogFishDog類繼承自Animal類并實現了Swimmer接口,Fish類也繼承自Animal類并實現了Swimmer接口。

      Dog類和Fish類中,它們都重寫了makeSound()方法,并且Dog類實現了swim()方法,而Fish類也實現了swim()方法。

      現在我們來看看如何使用這些類:

      fun main() {
          val dog = Dog("Buddy")
          dog.makeSound() // Output: Buddy barks.
          dog.swim() // Output: Buddy swims.
      
          val fish = Fish("Nemo")
          fish.makeSound() // Output: Nemo doesn't make a sound.
          fish.swim() // Output: Nemo swims.
      }
      

      main()函數中,我們創建了一個Dog對象和一個Fish對象,并分別調用它們的方法。

      輸出結果如下:

      Buddy barks.
      Buddy swims.
      Nemo doesn't make a sound.
      Nemo swims.
      

      通過這個示例,我們可以看到繼承和接口實現的區別:

      • 繼承允許子類繼承父類的屬性和方法,并且可以重寫父類的方法。在示例中,DogFish類繼承了Animal類的name屬性和makeSound()方法,并且分別重寫了makeSound()方法。
      • 接口實現允許類實現接口中定義的方法。在示例中,DogFish類都實現了Swimmer接口的swim()方法。

      綜上所述,繼承用于類與類之間的層次結構和代碼重用,而接口實現用于類與接口之間的行為規范和多態性。

      下周計劃

      1. 繼續學習Kotlin語言,學習Lambda編程
      2. 利用Kotlin實現CS架構
      posted @ 2024-07-21 16:51  20231302邱之釗  閱讀(48)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久综合色一综合色88| 成人久久精品国产亚洲av| 亚洲熟女精品一区二区| 无套内谢极品少妇视频| 国产伦码精品一区二区| 国产成人精品亚洲资源| 波多野结衣久久一区二区| 亚洲精品久久久久久下一站| 成人免费无码不卡毛片| 少妇久久久久久久久久| 久久综合给合久久狠狠狠| 中文字幕人妻av12| h无码精品3d动漫在线观看| 久久人人97超碰精品| 女人下边被添全过视频的网址 | 一级做a爰片在线播放| 中文无码热在线视频| 欧美 亚洲 中文 国产 综合| 国产精品国产三级国快看| 国内自拍偷拍一区二区三区| 久久精品国产亚洲AV麻豆长发| 蜜桃一区二区三区免费看| 免费久久人人爽人人爽AV| 久热这里只有精品视频3| 成年女人免费v片| 亚洲国产美国产综合一区| 激情五月日韩中文字幕| 久久日韩精品一区二区五区| 国产精品无遮挡猛进猛出| 国产av人人夜夜澡人人爽麻豆| 久久亚洲精品天天综合网| 久久婷婷五月综合97色直播| 肥臀浪妇太爽了快点再快点 | 国产一区二区三区18禁| 涩欲国产一区二区三区四区| 久久综合国产色美利坚| 97在线视频人妻无码| 中文在线天堂中文在线天堂| 亚洲av无码精品色午夜蛋壳| 美乳丰满人妻无码视频| 精品人妻av中文字幕乱|