Kotlin基础之面向对象编程

1. 类与对象

介绍
  • :类是对象的蓝图或模板,它定义了对象的属性和方法。
  • 对象:对象是类的实例,具有类的属性和方法。
使用
// 定义一个类
class Person {
var name: String = ""
var age: Int = 0
// 方法
fun introduce() {
println("Hello, my name is $name and I'm $age years old.")
}
}
// 创建一个对象
val person = Person()
person.name = "Alice"
person.age = 30
person.introduce() // 输出:Hello, my name is Alice and I'm 30 years old.

2. 继承与构造函数

继承介绍
  • 继承允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。
构造函数介绍
  • 构造函数用于初始化对象的状态。在 Kotlin 中,主构造函数是类头的一部分,而辅助构造函数(如果有)则使用 constructor 关键字定义。
使用
// 父类
open class Animal {
open fun sound() {
println("The animal makes a sound")
}
}
// 子类
class Dog : Animal() { // 继承自 Animal
override fun sound() { // 重写父类方法
println("The dog barks")
}
init { // 初始化块,类似于构造函数中的代码
println("Dog is initializing")
}
// 辅助构造函数
constructor(name: String) : this() { // 调用主构造函数
println("Dog's name is $name")
}
}
val dog = Dog("Buddy") // 输出:Dog is initializing 和 Dog's name is Buddy
dog.sound() // 输出:The dog barks

3. 接口

介绍
  • 接口定义了一组方法的规范,但不提供这些方法的实现。类可以实现一个或多个接口,从而承诺提供这些方法的实现。
使用
// 定义一个接口
interface Shape {
fun draw()
}
// 实现接口的类
class Circle : Shape {
override fun draw() {
println("Drawing a circle")
}
}
val shape: Shape = Circle() // 使用接口作为类型引用实现类
shape.draw() // 输出:Drawing a circle

4. 数据类

介绍
  • 数据类主要用于存储数据,它们的主要目的是提供一种简洁的方式来创建只包含数据的类。Kotlin 会自动为数据类生成一些常用方法,如 equals()hashCode(), 和 toString()
使用
data class PersonData(val name: String, val age: Int)
val personData = PersonData("Bob", 25)
println(personData) // 输出:PersonData(name=Bob, age=25)

5. 单例类

介绍
  • 单例类是一种设计模式,确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。
使用
object Singleton {
init {
println("Singleton is created")
}
fun doSomething() {
println("Singleton is doing something")
}
}
// 访问单例对象的方法
Singleton.doSomething() // 输出:Singleton is doing something

在 Kotlin 中,使用 object 关键字可以直接声明一个单例对象。这个对象在第一次被访问时创建,并且之后所有的访问都会返回这个唯一的实例。

上一篇:基于FIDO2和USBKEY硬件的SSH认证


下一篇:C++STL容器系列(三)list的详细用法和底层实现