执行的结果:
3.案例三,父类 子类 简单继承:
package cn.kotlin.kotlin_oop03
/**
- 描述父类
*/
// open 理解为对外暴露,其他地方可以继承
open class Father {
// 定义描述性格的变量 注意:var kidney:String 此变量的String是Kotlin的
var kidney:String = “性格文静,热爱运动,喜欢学习”
/**
- 描述武功的行为/方法
*/
// open 理解为对外暴露,其他地方可以调用
open fun showGest() {
println(“武功平常,只能打打小混混”)
}
}
/**
- 描述子类
*/
class Child : Father() {
/**
- 描述武功的行为/方法
*/
// override代表重写父类的方法
override fun showGest() {
println(“拥有上乘武功,神照经,难遇敌手…”)
}
}
/**
- main测试方法
*/
fun main(args: Array) {
// 打印父类的信息
var f = Father();
println(“父类的性格:${f.kidney}”)
f.showGest() // 父类的武功
println(“-------------------------------------------”)
// 打印子类的信息
var c = Child();
println(“子类的性格:${c.kidney}”)
c.showGest() // 子类的武功
println(“-------------------------------------------”)
// 父类的引用指向子类的对象 以前Java的写法 父类 fc = new 子类();
var fc:Father = Child()
fc.showGest()
}
运行结果:
Get/Set方法的使用
接着往下讲解kotlin的get/set方法的使用。
Student.kt
package cn.kotlin.kotlin_oop04
open class Person {
open var personName:String = “我是父类的名字”
}
class Student: Person() {
/**
- name用private私有修饰,外界其他地方不准访问,隐藏细节
- name提供set get 方法 对外暴露功能
- 对细节隐藏,只暴露自定义暴露的东东,就是属于封装的体现
*/
private var name:String = “”
fun getName() : String{
return name
}
fun setName(name:String) {
this.name = name
}
/**
- age用private私有修饰,外界其他地方不准访问,隐藏细节
- age提供set get 方法 对外暴露功能
- 对细节隐藏,只暴露自定义暴露的东东,就是属于封装的体现
*/
private var age:Int = 0
fun getAge() : Int{
return age
}
fun setAge(value: Int) {
if (value <0 || value > 150) {
println(“传入的${age}值不规范 出现异常 请检查代码”)
return
}
age = value
}
/**
- sex用private私有修饰,外界其他地方不准访问,隐藏细节
- sex提供set get 方法 对外暴露功能
- 对细节隐藏,只暴露自定义暴露的东东,就是属于封装的体现
*/
private var sex:String = “”
fun getSex() : String {
return sex
}
fun setSex(sex : String) {
if (“男”.equals(sex) || “女”.equals(sex)) {
this.sex = sex
return
}
println(“传入的${sex}值不规范 出现异常 请检查代码”)
}
/**
- 获取父类Person的personName
*/
override var personName: String
get() = super.personName
set(value) {personName = value}
}
/**
- main测试方法
*/
fun main(args: Array) {
var student = Student()
// 设置所以属性信息
setAllData(student)
// 打印所以属性信息
toAllInfoShow(student)
}
/**
- 设置所以属性信息
*/
fun setAllData(student: Student) {
student.setName(“猪小明”)
student.setAge(99)
student.setSex(“男”)
}
/**
- 打印所以属性信息
*/
fun toAllInfoShow(student : Student) {
println(“name: s t u d e n t . g e t N a m e ( ) , a g e : {student.getName()}, age: student.getName(),age:{student.getAge()}, sex:${student.getSex()}”)
}
在Kotlin中,getter和setter是可选的,如果你没有在代码中创建它们,它是会默认自动生成,是看不到的:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
作者2013年从java开发,转做Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。
参与过不少面试,也当面试官 面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!
我整理了一份阿里P7级别的最系统的Android开发主流技术,特别适合有3-5年以上经验的小伙伴深入学习提升。
主要包括阿里,以及字节跳动,腾讯,华为,小米,等一线互联网公司主流架构技术。如果你想深入系统学习Android开发,成为一名合格的高级工程师,可以收藏一下这些Android进阶技术选型
我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言
高级UI与自定义view;
自定义view,Android开发的基本功。
性能调优;
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。
NDK开发;
未来的方向,高薪必会。
前沿技术;
组件化,热升级,热修复,框架设计
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,GitHub可见;《Android架构视频+学习笔记》
当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。
深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,GitHub可见;《Android架构视频+学习笔记》
当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。
不出半年,你就能看出变化!