kotlin自学记录2,第二天2023年2月16日
kotlin自学记录2,第二天2023年2月16日
ytkzOOP
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 = ""
}
构造函数
在 Kotlin 中,有一种更快的方法,即使用构造函数。
构造函数就像一个特殊的函数,它是通过()
类名后的两个括号来定义的。您可以在括号内指定属性(例如将参数传递给常规函数)。
创建类的对象时,构造函数将初始化属性。请记住指定属性/变量的类型:
class 朋友(var name: String, var hobby: String)
fun main() {
val friend = 朋友("张三", "钓鱼")
Println(friend.name)
Println(friend.hobby)
}
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))
}
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()
}