kotlin自学记录2,第二天2023年2月16日

download


OOP

Object-Oriented Programming简称OOP,中文叫做面向对象编程。

和面向对象编程不一样的是另一种编程思想:面向过程编程。

过程编程是关于编写对数据执行操作的过程或方法,而面向对象编程是关于创建包含数据和方法的对象。

你可以这么理解,C语言是面向过程编程。但是面向过程编程一旦工程变大,管理就面临着困难,debug都不知道在哪里改。C PLUS PLUS语言应运而生,C Plus Plus简写cpp,或者叫c++。

C++、Java、Kotlin、C#、Python都是C语言家族的成员,也是面向对象编程语言。

优点

面向对象编程与过程编程相比有几个优点:

  • OOP 执行起来更快更容易
  • OOP 为程序提供了清晰的结构
  • OOP 有助于保持 Kotlin 代码的 DRY“Don’t Repeat Yourself”,并使代码更易于维护、修改和调试
  • OOP 可以用更少的代码和更短的开发时间创建完全可重用的应用程序

什么是类和对象?

类是对象的模板,对象是类的实例。

创建单个对象时,它们会继承类的所有变量和方法。

创建对象

fun main(){
    var myFriend = 朋友()
    myFriend.name = "张三"
    myFriend.hobby = "钓鱼"
    println("我有一个朋友叫"+myFriend.name)
    println(myFriend.name +"喜欢"+ myFriend.hobby)
}
class 朋友 {
    var name = ""
    var hobby = ""
}

微信截图_20230216145802

构造函数

在 Kotlin 中,有一种更快的方法,即使用构造函数

构造函数就像一个特殊的函数,它是通过() 类名后的两个括号来定义的。您可以在括号内指定属性(例如将参数传递给常规函数)。

创建类的对象时,构造函数将初始化属性。请记住指定属性/变量的类型:

class 朋友(var name: String, var hobby: String)

fun main() {
  val friend = 朋友("张三", "钓鱼")
    Println(friend.name)
      Println(friend.hobby)
}

微信截图_20230216152621

Kotlin 类方法

写在类里面的方法或者函数。实例化后可以调用类方法。

class Friend(var name: String, var food: String) {
    // 类方法
    fun showName() {
        println(name)
    }
    // Class function with parameters
    fun showHeight(height: Int) {
        println("Max height is: " + height)
    }
}
fun main() {
    val myFriend = Friend("Zhangsan", "beef")

    println( myFriend.showName())
    println( myFriend.showHeight(200))
}

微信截图_20230216193102

Kotlin 继承

在 Kotlin 中,可以将类的属性和函数从一个类继承到另一个类。我们将“继承概念”分为两类:

  • 子类 - 从另一个类继承的类
  • 超类(父类)- 继承的来源类

在下面的示例中,MyFriendClass(子类)继承了friend类(超类)的属性name

// 超类
open class friend {
    val name = "张三"
}

// 子类
class MyFriendClass: friend() {
    fun myFunction() {
        println(name) // x is now inherited from the superclass
    }
}


fun main() {
    val myFriend= MyFriendClass()
    myFriend.myFunction()
}

微信截图_20230216192316