Kotlin 极简小抄 P10(类与对象、主构造函数、带有默认参数值的主构造函数、次要构造函数)

Kotlin 概述

  1. Kotlin 由 JetBrains 开发,是一种在 JVM(Java 虚拟机)上运行的静态类型编程语言

  2. Kotlin 旨在提高开发者的编码效率和安全性,同时保持与 Java 的高度互操作性

  3. Kotlin 是 Android 应用开发的首选语言,也可以与 Java 一样用于服务器端开发


一、类与对象

  1. 声明一个类
kotlin 复制代码
class Person {
    var name: String = ""
    var age: Int = 0

    fun introduce() {
        println("$name - $age")
    }
}
  1. 如果一个类没有类体,可以省略花括号
kotlin 复制代码
class Empty
  1. 创建与使用对象
kotlin 复制代码
val person = Person()

person.introduce()

person.name = "Alice"
person.age = 30

person.introduce()

二、主构造函数

1、声明
  1. 完整的构造函数声明
kotlin 复制代码
class People constructor(name: String, age: Int) {
    var name: String = name
    var age: Int = age

    fun introduce() {
        println("$name - $age")
    }
}
  1. 简化的构造函数声明
kotlin 复制代码
class People(name: String, age: Int) {
    var name: String = name
    var age: Int = age

    fun introduce() {
        println("$name - $age")
    }
}
  1. 更加简化的构造函数声明
kotlin 复制代码
class People(var name: String, var age: Int) {
    fun introduce() {
        println("$name - $age")
    }
}
  1. 使用不可变属性
kotlin 复制代码
class People(val name: String, val age: Int) {
    fun introduce() {
        println("$name - $age")
    }
}
2、使用
  1. 使用位置参数方式创建对象(必须按声明顺序)
kotlin 复制代码
val people = People("Jack", 18)
  1. 使用命名参数方式创建对象(参数顺序可以调换)
kotlin 复制代码
val people = People(age = 18, name = "Jack")

三、带有默认参数值的主构造函数

1、声明
kotlin 复制代码
class Employee(var name: String = "Unknown", var age: Int = 0) {
    fun introduce() {
        println("$name - $age")
    }
}
2、使用
  • 调用时可以不传参数,使用默认值
kotlin 复制代码
val employee1 = Employee("Jack", 18)
val employee2 = Employee("Jack")
val employee3 = Employee(age = 18)
val employee4 = Employee()

employee1.introduce()
employee2.introduce()
employee3.introduce()
employee4.introduce()
复制代码
# 输出结果

Jack - 18
Jack - 0
Unknown - 18
Unknown - 0

四、次要构造函数

1、声明
kotlin 复制代码
class Worker(var name: String, var age: Int) {
    constructor(name: String) : this(name, 0)

    constructor(age: Int) : this("Unknown", age)

    constructor() : this("Unknown", 0)

    fun introduce() {
        println("$name - $age")
    }
}
2、使用
  1. 使用主构造函数
kotlin 复制代码
val worker = Worker("Jack", 18)
  1. 使用次要构造函数(只接受 name 参数)
kotlin 复制代码
val worker = Worker("jack")
  1. 使用次要构造函数(只接受 age 参数)
kotlin 复制代码
val worker = Worker(18)
  1. 使用次要构造函数(不接受参数)
kotlin 复制代码
val worker = Worker()
相关推荐
AI逐月4 分钟前
解决 ComfyUI 插件安装后 Nanobind 报错问题:soxr 版本冲突原理解读
开发语言·python
Gofarlic_OMS13 分钟前
SolidEdge专业许可证管理工具选型关键评估标准
java·大数据·运维·服务器·人工智能
清华都得不到的好学生17 分钟前
数据结构->1.稀疏数组,2.数组队列(没有取模),3.环形队列
java·开发语言·数据结构
光影少年17 分钟前
数组去重方法
开发语言·前端·javascript
我命由我1234517 分钟前
浏览器的 JS 模块化支持观察记录
开发语言·前端·javascript·css·html·ecmascript·html5
软件开发技术深度爱好者22 分钟前
用python + pillow实现GUI界面图片GUI处理工具
开发语言·python
weyyhdke27 分钟前
基于SpringBoot和PostGIS的省域“地理难抵点(最纵深处)”检索及可视化实践
java·spring boot·spring
ILYT NCTR33 分钟前
【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
java·spring boot·spring
weixin_4250230034 分钟前
PG JSONB 对应 Java 字段 + MyBatis-Plus 完整实战
java·开发语言·mybatis
leaves falling1 小时前
C++ string 类:从入门到模拟实现
开发语言·c++