面向对象:

//妹子          性格                声音
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第四课的更多相关文章

  1. 从零开始学Kotlin第六课

    Kotlin调用java代码: 1.如果是内部工程的类,直接调用,如果是外部的工程项目按照java的方式将jar包导入进来. 2.实例化java对象 我们之前学java的时候实例化对象是这个样子的. ...

  2. 从零开始学Kotlin第七课

    1.强制类型转换需要在后面加两个感叹号 2.如果需要在java代码调用kotlin的方法时候使用文件名+kt.方法 3.object 类名 是创建匿名内部类的写法 调用 传入class对象 4.在to ...

  3. 从零开始学Kotlin第三课

    kotlin函数和函数式表达式的简化写法: fun main(args:Array<String>) { var result=add(2,5) println(result) ///简化 ...

  4. 从零开始学Kotlin第五课

    函数式编程入门: package EL fun main(args: Array<String>) { var names= listOf<String>("tom& ...

  5. 从零开始学Xamarin.Forms(四) Android 准备步骤(添加第三方Xamarin.Forms.Labs库)

    原文:从零开始学Xamarin.Forms(四) Android 准备步骤(添加第三方Xamarin.Forms.Labs库)  1.安装对应dll     Update-Package Xama ...

  6. 从零开始学Kotlin第一课

    Kotlin的方法: 一个简单的计算器: fun main(args:Array<String>){ //主函数main方法 var a=8; var b=9; println(plus( ...

  7. 从零开始学Kotlin第二课

    字符串模板 fun main(args:Array<String>){ //主函数main方法 println(diaryGenerater("天安门")); } // ...

  8. Java从零开始学二十四(集合工具类Collections)

    一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二 ...

  9. 小哈学Python第四课--运算符

    运算符: 1.算数运算符: 2. 比较运算符 3.赋值运算符 4. 逻辑运算符: 5. 成员运算:

随机推荐

  1. 浏览器有别_HTTP报文的回车换行

    本来以为浏览器HTTP报文的生成应该是完全一致的.但最近在做一个项目的时候,发现Safari和Chrome提交同一份表单,后端的处理结果不一致.看提交结果呢,是因为Safari多了个回车.由于原项目的 ...

  2. 打造专属测试平台4-使用Docker部署Django项目

    编写完项目代码后,为了稳定的运行,需要将其部署至服务器.这里我选择了Docker去部署Django后端代码. 首先来看看Runoob对Docker的介绍: Docker 是一个开源的应用容器引擎,基于 ...

  3. java定时任务调度框架

    java定时任务目前主要有三种: Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行,但不能在 ...

  4. Coursera Deep Learning笔记 结构化机器学习项目 (下)

    参考:https://blog.csdn.net/red_stone1/article/details/78600255https://blog.csdn.net/red_stone1/article ...

  5. [对对子队]会议记录5.18(Scrum Meeting5)

    今天已完成的工作 何瑞 ​ 工作内容:搭建第8关 ​ 相关issue:搭建关卡7.8.9 ​ 相关签入:feat:初步搭建了Lv8 吴昭邦 ​ 工作内容:搭建第8关 ​ 相关issue:搭建关卡7.8 ...

  6. Java设计模式——模板设计模式

    模板设计模式 1.模板模式简介 模板模式(Template ):模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑 ...

  7. SpringCloud 2020.0.4 系列之Hystrix看板

    1. 概述 老话说的好:沉默是金,有时适当的沉默,比滔滔不绝更加有效. 言归正传,前面我们聊了有关 Hystrix 降级熔断的话题,今天我们来聊聊如何使用 turbine 和 hystrix dash ...

  8. 『学了就忘』Linux基础 — 13、Linux系统的分区和格式化

    目录 1.Linux系统的分区 (1)磁盘分区定义 (2)两种分区表形式 (3)MBR分区类型 2.Linux系统的格式化 (1)格式化定义 (2)格式化说明 1.Linux系统的分区 (1)磁盘分区 ...

  9. Go并发编程--Mutex/RWMutex

    目录 一.前言 二. Mutex 2.1 案例 三. 实现原理 3.1 锁的实现模式 3.2 Go Mutex 实现原理 3.2.1 加锁 3.2.2 解锁 四. 源码分析 4.1 Mutex基本结构 ...

  10. 全志TinaLinux编译错误fatal error: unicode/ucnv.h: No such file or directory

    今天开始正式干活了 拿到一个全志Tina的板子还有一个SDK压缩包,要求我这周(只剩一天半...)就要把sdk编译通过并且把板子跑起来. 还特别跟我说他们试了下这个sdk编译没法通过,会报错... 竟 ...