面向对象:

//妹子          性格                声音
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. 复杂对象List集合的排序

    对于集合的排序,直接的有sort().间接的有借用compareTo.Comparable等,但是对于相对复杂的对象集合,还得自己实现方法来处理. 现在有这样一个思路: 第一步:从需要排序的对象集合中 ...

  2. HashMap、ConcurrentHashMap红黑树实现分析

    本文学习知识点 1.二叉查找树,以及二叉树查找带来的问题. 2.平衡二叉树及好处. 3.红黑树的定义及构造. 4.ConcurrentHashMap中红黑树的构造. 在正式分析红黑树之前,有必要了解红 ...

  3. pycharm运行测试程序提示no tests were found

    转载: https://blog.csdn.net/qq_33834328/article/details/75095078

  4. OO课第三单元总结

    一.梳理JML语言的理论基础 (1)理论基础 JMl的出现很大程度上一为了行为接口的规范化,用这种语言来指定特定模块的特定功能.JML的核心部分分为三个部分:前置条件(requires).后置条件(e ...

  5. dwr简单应用及一个反向ajax消息推送

    由于项目中最近需要用到dwr实现一些功能,因此在网上和dwr官网上找了一些资料进行学习.在此记录一下.(此处实现简单的dwr应用和dwr消息反向推送) 一.引入dwr的包 <dependency ...

  6. 用建造者模式实现一个防SQL注入的ORM框架

    本文节选自<设计模式就该这样学> 1 建造者模式的链式写法 以构建一门课程为例,一个完整的课程由PPT课件.回放视频.课堂笔记.课后作业组成,但是这些内容的设置顺序可以随意调整,我们用建造 ...

  7. Machine learning (7-Regularization)

    1.The Problem of Over-fitting 2.Cost Function 3.Regularized Linear Regression 4.Regularized Logistic ...

  8. ASP的调试技术解答

    一. 调试 ASP.NET 应用程序时出现"未将项目配置为进行调试"的错误信息 症状 当您在 Visual Studio .NET 中调试 ASP.NET 应用程序时,可能会出现下 ...

  9. Bzoj通过5题纪念

    我A了五题啦!!!

  10. cf12D Ball(MAP,排序,贪心思想)

    题意: N位女士一起聚在一个舞厅.每位女士有三个特征值B,I,R.分别代表美貌,智慧,富有. 对于一位女士而言,如果存在一个女士的B,I,R都分别大于她自己的B,I,R.则她自己会自杀. 统计总共有多 ...