| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Kotlin 学习笔记 六:面向对象(上) -> 正文阅读 |
|
[移动开发]Kotlin 学习笔记 六:面向对象(上) |
1.this关键字总是指向调用该方法的对象 2.大部分时候。一个方法访问该类中定义的其他方法、属性时加不加this前缀,效果时一样的,但是省略this前缀只是一种假象而已.实际上在编译的时候这个this会自动添加上 3.方法是类或对象行为特征的抽象,方法是类或对象最重要的组成部分 4.kotlin标准库提供了pair和triple两个数据量,pair类可以包含任意两个类型数据,triple类可以包含三个 5.在Kotlin类中定义属性后,被Kotlin程序使用时只能使用点语法访问属性;被Java程序使用时只能通过getter、setter方法访问属性 6.在定义属性时可以指定自定义的getter和setter方法,这些方法可以加入自己的控制逻辑,getter应该是无参数、带一个返回值的方法;setter是一个形如set(value){}的方法,setter应该是带一个参数、无返回值的方法 7.Kotlin在满足以下条件时,系统会为属性生成幕后字段(Kotlin为该属性所生成的field就被称为幕后字段) 该属性使用Kotlin自动生成的setter和getter方法或其中之一 重写getter、setter方法时,使用field关键字显示引用的幕后字段 8.当程序重写getter或setter方法时,不能通过点语法来对属性赋值,假如在name的setter方法中使用了点语法对属性赋值,实际上就是调用了setter方法,这样就会形成无限递归,因此只能通过field引用幕后字段,从而实现对幕后字段的赋值的 9.在个别情况下,开发者希望自己定义field,并为该field提供setter、getter方法,这时候就可以使用private修饰,kotlin不会为其生成任何getter和setter方法 10.kotlin提供了lateinit修饰符来为属性延迟初始化,可以在定义该属性时和在构造器中都不指定初始化值,lateinit修饰符有以下限制 lateinit只能修饰在类体中声明的可变属性(使用val声明的属性不行,在主构造器中声明的属性也不行) lateinit修饰的属性不能有自定义的getter或setter方法 lateinit修饰的属性必须是非空类型 lateinit修饰的属性不能是原生类型 ? ? ? kotlin不会为属性执行默认初始化,因此,如果在lateinit属性赋值初始化之前访问,会引发异常 11.内联属性,inline修饰符可以修饰没有幕后字段的属性的getter或setter方法 12.封装是面向对象的三大特征之一,对一个类或对象实现良好的封装,可以实现以下目的 隐藏类的实现细节 让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问 可以进行数据检查,从而有利于保证对象信息的完整性 便于修改,提高代码的可维护性 13.Kotlin提供了四个访问控制符 private:private只能改该类的内部或文件的内部被访问 internal:internal成员可以在该类的内部或文件的内部或同一模块的内部被访问 protected:protected成员可以在该类的内部或文件的内部或其子类被访问 public:public成员可以在任意位置被访问 14.对kotlin而言,初始化块会在创建对象时隐式执行 15.所有的次构造器都要委托调用主构造器,主构造器的作用就是执行初始化块以及为初始化块定义参数 16.继承是面向对象的三大特征之一,也是实现软件复用的重要手段。Kotlin的继承同样是单继承:每个子类最多只有一个直接父类 17.kotlin的类默认就有final修饰,因此kotlin的类默认是不能派生子类的。为了让一个类能派生子类,需要使用open修饰符修饰该类 18.当调用子类构造器来初始化子类对象时,父类构造器总会在子类构造器之前执行,依此类推,任何kotlin对象,总会先执行Any类的构造器 19,子类继承父类,将可以获得父类的全部属性和方法 20.方法的重写遵循“两同、两小、一大”方法名字,形参列表相同,返回值类型要比父类返回值类型相等或更小,子类方法声明抛出的异常应比父类方法声明抛出的异常相等或更小,子类方法的访问权限应该比父类方法的访问权限更大或相等 21.如果某个方法中访问名为a的属性,但没有显式指定调用者,系统查找a的顺序为: 查找该方法中是否有名为a的局部变量 查找当前类中是否包含名为a的属性 查找a的父类是否包含名为a的属性,依此类推 22.Kotlin的变量有两个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋值给该变量的对象决定。如果编译时类型和运行时类型不一致,就有可能出现所谓的多态 23.kotlin的is和!is都非常的只能,只要程序使用了is或者!is对变量进行了判断,系统就会自动将变量的类型转换为目标类型 24.除了is自动转型以外,kotlin也支持使用as运算符进行强制转型 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:39:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |