Android修行手册之Kotlin-【类和对象】篇

简介: 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)

有什么需要欢迎私我,交流群让学习不再孤单

👉前提

当前环境

2021年10月8日最新下载2020.3.1 Patch 2 版本

👉实践过程

😜类和对象

类的创建也是使用【class】关键字

class Entity {
     var name: String? = null
     var urlJUEJIIN: String? = null
     var urlCSDN: String? = null
     var urlList: List<String>? = null
}
复制代码

初始化的时候不用new关键字

var tempEntity = Entity()  //等同于java的Entity tempEntiy=new Entity();

tempEntity.name="这是我的名字" //使用里面的属性也是点出来

在Java中构造函数可以有多个,都是类名即可。在Kotlin中有一些不同

  1. 有主构造函数和次构造函数区分
  2. 主次构造函数建议单独存在,因为要想同时存在需要特殊处理
  3. 有个初始化函数,只要创建该类,初始化函数里面的内容必执行

构造函数的访问权限怎么修饰?

次要构造函数直接在前面写,主要构造函数在函数前类名后写

class Entity {
    init {
        Log.e("TAG,", "类的初始化函数,关键字是init-系统内置的 ")
    }
    var name: String? = null
    var urlJUEJIIN: String? = null
    var urlCSDN: String? = null
    var urlList: List<String>? = null
    constructor() {
    }
    private constructor(name: String) {
    }
    //不同参数的次要构造函数
    constructor(name: String, age: Int) {
        Log.e("TAG,", "执行了构造器$name===$age")
    }
}
//这是两个类 在两个文件里 别搞混了
//这个是主构造函数,直接在类名后面用关键字constructor
class Person private constructor(name: String, age: String) {
    init {
    }
    //特殊处理:如果主要构造和次要构造同时存在的话--必须包含主要构造的参数内容
    constructor(name: String, age: String, height: Int) : this(name, age) {
    }
}
复制代码

//2021-10-14 14:52:59.468 10639-10639/cn.appstudy E/TAG,: 类的初始化函数,关键字是init-系统内置的 //2021-10-14 14:52:59.468 10639-10639/cn.appstudy E/TAG,: 执行了构造器测试===20

那么如果类继承又会怎么样呢?

如果父类有构造函数,则子类也必须有至少一个,如果不足编辑器则会提示警告

使用父类的方法也是使用【super】关键字,并且父类需要【open】关键字

open class Entity {
    init {
        Log.e("TAG,", "类的初始化函数,关键字是init-系统内置的 ")
    }
    constructor() {
    }
    constructor(name: String) {
    }
    //不同参数的次要构造函数
    constructor(name: String, age: Int) {
        Log.e("TAG,", "执行了父类构造器$name===$age")
    }
}
class EntityTwo : Entity {
    constructor() {
    }
    constructor(name: String) : this(name, 0) {
    }
    //不同参数的次要构造函数
    constructor(name: String, age: Int) : super(name, age) {
        Log.e("TAG,", "执行了子类构造器$name===$age")
    }
}
复制代码


👉其他

📢作者:小空和小芝中的小空

📢转载说明-务必注明来源:

https://zhima.blog.csdn.net/

https://www.zhihu.com/people/zhimalier

https://juejin.cn/user/4265760844943479

📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

相关文章
|
4月前
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
200 93
|
3月前
|
存储 前端开发 测试技术
Android kotlin MVVM 架构简单示例入门
Android kotlin MVVM 架构简单示例入门
49 1
|
3月前
|
调度 Android开发 开发者
构建高效Android应用:探究Kotlin多线程优化策略
【10月更文挑战第11天】本文探讨了如何在Kotlin中实现高效的多线程方案,特别是在Android应用开发中。通过介绍Kotlin协程的基础知识、异步数据加载的实际案例,以及合理使用不同调度器的方法,帮助开发者提升应用性能和用户体验。
77 4
|
3月前
|
JSON 调度 数据库
Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。文章详细解析了Kotlin中的协程、扩展函数、高阶函数、密封类及`inline`和`reified`关键字在Android开发中的应用,帮助读者更好地理解和使用这些特性。
47 1
|
2月前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
89 0
|
3月前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
39 2
|
3月前
|
Android开发 Kotlin
Android面试题之Kotlin中如何实现串行和并行任务?
本文介绍了 Kotlin 中 `async` 和 `await` 在并发编程中的应用,包括并行与串行任务的处理方法。并通过示例代码展示了如何启动并收集异步任务的结果。
44 0
|
3月前
|
Java 调度 Android开发
Android面试题之Kotlin中async 和 await实现并发的原理和面试总结
本文首发于公众号“AntDream”,详细解析了Kotlin协程中`async`与`await`的原理及其非阻塞特性,并提供了相关面试题及答案。协程作为轻量级线程,由Kotlin运行时库管理,`async`用于启动协程并返回`Deferred`对象,`await`则用于等待该对象完成并获取结果。文章还探讨了协程与传统线程的区别,并展示了如何取消协程任务及正确释放资源。
55 0
|
Kotlin
【Kotlin】Kotlin 类的继承 二 ( 属性覆盖 | 属性覆盖的四种情况 | 常量 / 变量 属性覆盖 | 子类初始化与属性覆盖 )
【Kotlin】Kotlin 类的继承 二 ( 属性覆盖 | 属性覆盖的四种情况 | 常量 / 变量 属性覆盖 | 子类初始化与属性覆盖 )
352 0
|
4月前
|
Android开发 开发者 Kotlin
告别AsyncTask:一招教你用Kotlin协程重构Android应用,流畅度飙升的秘密武器
【9月更文挑战第13天】随着Android应用复杂度的增加,有效管理异步任务成为关键。Kotlin协程提供了一种优雅的并发操作处理方式,使异步编程更简单直观。本文通过具体示例介绍如何使用Kotlin协程优化Android应用性能,包括网络数据加载和UI更新。首先需在`build.gradle`中添加coroutines依赖。接着,通过定义挂起函数执行网络请求,并在`ViewModel`中使用`viewModelScope`启动协程,结合`Dispatchers.Main`更新UI,避免内存泄漏。使用协程不仅简化代码,还提升了程序健壮性。
132 1