从零开始学Kotlin第四课
面向对象:
- //妹子 性格 声音
- class Girl(var chactor:String,var voice:String)
- fun main(args: Array<String>) {
- var girl=Girl("彪悍","甜美")
- println("声音"+girl.voice)
- }
行为
- //妹子 性格 声音
- class Girl(var chactor:String,var voice:String){
- //行为
- fun smile(){
- println("妹子笑了下,么么哒")
- }
- }
- fun main(args: Array<String>) {
- var girl=Girl("彪悍","甜美")
- println("声音"+girl.voice)
- girl.smile()
- }
java的三大特性封装继承多态
属性私有private是和jav一样的,继承不一样,案例:
- 父类:
- /**
- * open允许被继承
- */
- open class Fathor{
- open var chactor:String="性格内向"
- /**
- * 方法允许重写
- */
- open fun action(){
- println("公共场合喜欢大声喧哗")
- }
- }
- 子类:
- /**
- * 继承:FATHOR
- */
- class Son:Fathor(){
- /**
- * 重写方法
- */
- override fun action(){
- println("很乖巧")
- }
- }
- 调用类:
- fun main(args: Array<String>) {
- var son1=Son();
- println("儿子的性格:${son1.chactor}")
- son1.action()
- }
抽象类:
接口实现:
- interface IMan{
- fun xiaodidi()
- }
- class Man:IMan
- {
- override fun xiaodidi() {
- println("18cm")
- }
- }
- java 的instanceof 被Kotlin简化为is
代理和委托:
爸爸委托儿子洗碗的案例:
- package DL
- //洗碗的接口
- interface IWashBowl{
- fun washing()
- }
- package DL
- /**
- * 大头儿子
- */
- class BigHeadSon:IWashBowl{
- override fun washing() {
- println("我是大头儿子一次洗碗一块钱") }
- }
- package DL
- /**
- * 小头爸爸委托儿子洗碗 委托模式:by +委托对象
- */
- class SmallHeadFather:IWashBowl by BigHeadSon(){
- /**
- * 重写方法,更改后继续调用委托对象的方法,如果不重写默认调用委托对象方法
- */
- override fun washing() {
- println("小头爸爸洗碗一次10元")
- BigHeadSon().washing()
- }
- }
- package DL
- class Demo {
- }
- fun main(args: Array<String>) {
- var father=SmallHeadFather()
- father.washing()
- }
现在大头儿子每次创建对象都会产生一次大头儿子,做个单例模式吧。
- package DL
- /**
- * 大头儿子
- */
- object BigHeadSon:IWashBowl{
- override fun washing() {
- println("我是大头儿子一次洗碗一块钱") }
- }
- package DL
- /**
- * 小头爸爸委托儿子洗碗 委托模式:by +委托对象
- */
- class SmallHeadFather:IWashBowl by BigHeadSon{
- /**
- * 重写方法,更改后继续调用委托对象的方法,如果不重写默认调用委托对象方法
- */
- override fun washing() {
- println("小头爸爸洗碗一次10元")
- BigHeadSon.washing()
- }
- }
- package DL
- class Demo {
- }
- fun main(args: Array<String>) {
- //单例模式
- BigHeadSon.washing()
- }
枚举的使用:
- package DL
- enum class Week {
- 星期一,星期二,星期三,星期四,星期五,星期六,星期日
- }
- fun main(args: Array<String>) {
- println( Week.星期一.ordinal)//获取元素位置
- }
印章类型:个人感觉像是内部类
枚举更在意数据,sealed更在意数据类型。
从零开始学Kotlin第四课的更多相关文章
- 从零开始学Kotlin第六课
Kotlin调用java代码: 1.如果是内部工程的类,直接调用,如果是外部的工程项目按照java的方式将jar包导入进来. 2.实例化java对象 我们之前学java的时候实例化对象是这个样子的. ...
- 从零开始学Kotlin第七课
1.强制类型转换需要在后面加两个感叹号 2.如果需要在java代码调用kotlin的方法时候使用文件名+kt.方法 3.object 类名 是创建匿名内部类的写法 调用 传入class对象 4.在to ...
- 从零开始学Kotlin第三课
kotlin函数和函数式表达式的简化写法: fun main(args:Array<String>) { var result=add(2,5) println(result) ///简化 ...
- 从零开始学Kotlin第五课
函数式编程入门: package EL fun main(args: Array<String>) { var names= listOf<String>("tom& ...
- 从零开始学Xamarin.Forms(四) Android 准备步骤(添加第三方Xamarin.Forms.Labs库)
原文:从零开始学Xamarin.Forms(四) Android 准备步骤(添加第三方Xamarin.Forms.Labs库) 1.安装对应dll Update-Package Xama ...
- 从零开始学Kotlin第一课
Kotlin的方法: 一个简单的计算器: fun main(args:Array<String>){ //主函数main方法 var a=8; var b=9; println(plus( ...
- 从零开始学Kotlin第二课
字符串模板 fun main(args:Array<String>){ //主函数main方法 println(diaryGenerater("天安门")); } // ...
- Java从零开始学二十四(集合工具类Collections)
一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二 ...
- 小哈学Python第四课--运算符
运算符: 1.算数运算符: 2. 比较运算符 3.赋值运算符 4. 逻辑运算符: 5. 成员运算:
随机推荐
- android和IOS自动化定位方法
元素定位 方法:id定位,name定位(text定位),class_name定位, accessibility_id定位,xpath定位等 (目前1.5版本的已经不支持name定位了),所以APP的定 ...
- C++ 与 Visual Studio 2019 和 WSL
Visual Studio 使用 C++ 的 Linux 开发(WSL) https://devblogs.microsoft.com/cppblog/c-with-visual-studio-201 ...
- Vim合并行
日常常用到多行合并的功能,记录如下: 第一种, 多行合并成一行,即: AAAAABBBBBCCCCC 合并为:AAAAA BBBBB CCCCC 方法1: normal状态下 3J 其中的3是范围,可 ...
- python filter lambda 的使用
lambda 匿名函数的使用 >>> a=lambda x : x in "1234567890.," >>> a("asd" ...
- python中对列表的排序
1.sort()对列表永久性的排序,首字母按照字母表的顺序排列 book=['python','java','c++','web'] book.sort() print(book) 结果如下: 2.向 ...
- SpringBoot打包到docker(idea+传统方式)
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 1. 方式1.通过idea 远程发布 1.1 修改docker.service文件 1. 进入服务器 2. 修改ExecStart行为下面内容 ...
- Convolutional Neural Network-week1编程题(一步步搭建CNN模型)
Convolutional Neural Networks: Step by Step implement convolutional (CONV) and pooling (POOL) layers ...
- 【二食堂】Alpha - 项目展示
项目展示 1. 团队介绍 二食堂很难排队 姓名 介绍 职务 刘享 热爱游戏,尤其是RPG和metrovinia类的游戏. 会C/C++, python, java. 后端 左正 一个普通的大学生,Py ...
- matplotlib.legend()函数用法
用的较多,作为记录 legend语法参数如下: matplotlib.pyplot.legend(*args, **kwargs) 几个暂时主要用的参数: (1)设置图例位置 使用loc参数 plt. ...
- 华为HCIP-Eth-trunk原理知识点
Eth-trunk(端口聚合.链路捆绑.链路聚合.以太通道) Eth-trunk技术出现的原因: • 随着网络中部署的业务量不断增长,对于全双工点对点链路,单条物理链路的带宽已不能满足正常的业务流量 ...