• 精兵劲旅·血染征途:长征  随岁月延伸的红飘带 2020-01-26
  • 【理上网来喜迎十九大】习近平指引中国特色大国外交 2020-01-26
  • 骗子用女子照片制作“通缉令” 诈骗对方11万 2020-01-12
  • 人均24斤冰淇淋喷发500次火山 意大利12个“世界之最” 2020-01-12
  • 2000万元福彩公益金助贫困考生圆大学梦 2020-01-01
  • 揭秘:中纪委如何对高级领导干部进行谈话提醒? 2020-01-01
  • 港澳牙医只需备案即可在粤执业 2019-12-28
  • 乌兰察布(北京)招商路演会 2019-12-28
  • 端午佳节 听习近平谈弘扬中国优秀传统文化 2019-12-27
  • 中央环保督察“回头看” 发现两起虚假整改案例 2019-12-24
  • 环保部就“打好污染防治攻坚战”相关问题答问 2019-12-24
  • 陶方启:推进农业供给侧改革促乡村振兴 2019-12-24
  • 包住内力,在不断变化中寻找契机,可出击可借力亦可卸力。 2019-12-23
  • 深秋烟雾偎婺源文章中国国家地理网 2019-12-23
  • 2017年秋季学期学员第十二支部风采 2019-12-21
  • Kotlin

    Kotlin从基础到实战

    kotlin入门教程 涵盖程序设计 编程开发 移动开发等内容 与java完全交互 从入门到精通
    黑马程序员 (作者)

    成都麻将产品 www.hofww.tw 关于本书的内容有任何问题,请联系 范博涛

    1.本书从基础入门开始,带领读者逐步学习Kotlin的相关技术,最后以游戏开发案例贯穿全书;
    2.全书配套教学视频,帮助读者全面掌握相关内容。

    内容摘要

    本书从初学者的角度详细讲解了Kotlin开发中常用的多种技术。全书共13章,内容包括Kotlin入门、Kotlin编程基础、函数、面向对象、集合、lambda编程、泛型、Gradle、协程、“坦克大战”游戏开发、DSL、Kotlin与Java互操作、时钟。
    本书通过典型的案例、通俗易懂的语言阐述面向对象中的抽象概念,在集合、Lambda编程、泛型、Gradle、协程等章节中,通过剖析案例、分析代码结构、解决常见问题等方式,帮助初学者培养良好的编程习惯。第10章运用前几章的基础知识实现了一个坦克大战的游戏案例开发。第11~13章分别介绍了DSL、Kotlin与Java进行互操作以及通过Kotlin语言实现一个JavaScript语言的时钟项目,帮助初学者掌握Kotlin语言与Java语言、JavaScript语言的互操作。
    本书既可作为高等院校本、专科计算机相关专业的教材,也可作为社会培训教材,是一本适合广大编程爱好者参考和学习的书籍。为了帮助编程者更好地学习本书中的内容,本书还提供了配套的源代码与视频等资源,方便读者学习。

    目录


    第 1章 Kotlin入门 1
    1.1 Kotlin简介 1
    1.1.1 Kotlin的前景 1
    1.1.2 Kotlin的特性 2
    1.2 Kotlin开发环境搭建 3
    1.2.1 Kotlin常用开发工具 3
    1.2.2 IntelliJ IDEA的安装 3
    1.3 开发第 一个Kotlin程序 6
    1.4 本章小结 10

    第 2章 Kotlin编程基础 11
    2.1 Kotlin的基本语法 11
    2.1.1 Kotlin代码的基本格式 11
    2.1.2 Kotlin中的注释 12
    2.2 Kotlin中的变量 13
    2.2.1 变量的定义 13
    2.2.2 变量的数据类型 14
    2.3 运算符 16
    2.3.1 算术运算符 16
    2.3.2 赋值运算符 17
    2.3.3 比较运算符 18
    2.3.4 逻辑运算符 18
    2.4 字符串 19
    2.4.1 字符串的定义 19
    2.4.2 字符串的常见操作 20
    2.5 选择结构语句 25
    2.5.1 if条件语句 26
    2.5.2 when条件语句 30
    2.6 循环结构语句 32
    2.6.1 while循环语句 32
    2.6.2 do...while循环语句 33
    2.6.3 for循环语句 34
    2.6.4 循环嵌套 35
    2.6.5 forEach循环语句 36
    2.6.6 跳转语句(continue、break) 37
    2.7 区间 39
    2.7.1 正向区间 39
    2.7.2 逆向区间 40
    2.7.3 步长 40
    2.8 数组 41
    2.8.1 数组的定义 41
    2.8.2 数组的常见操作 43
    2.9 变量的类型转换 47
    2.9.1 类型检查 47
    2.9.2 智能类型转换 47
    2.9.3 强制类型转换 48
    2.10 空值处理 49
    2.10.1 可空类型变量( ) 49
    2.10.2 安全调用符( .) 50
    2.10.3 Elvis操作符( :) 50
    2.10.4 非空断言(!!.) 51
    2.11 本章小结 52

    第3章 函数 53
    3.1 函数的介绍 53
    3.1.1 函数的定义 53
    3.1.2 函数的类型 54
    3.1.3 单表达式函数 55
    3.1.4 函数的参数 56
    3.2 函数的分类 59
    3.2.1 顶层函数 59
    3.2.2 成员函数 60
    3.2.3 局部函数 61
    3.2.4 递归函数 62
    3.2.5 尾递归函数 62
    3.2.6 函数重载 64
    3.3 本章小结 65
    第4章 面向对象 66
    4.1 面向对象的概念 66
    4.2 类与对象 67
    4.2.1 类的定义 67
    4.2.2 对象的创建 67
    4.2.3 类的封装 68
    4.3 构造函数 69
    4.3.1 主构函数 70
    4.3.2 this关键字 70
    4.3.3 次构函数 71
    4.4 类的继承 72
    4.4.1 类的继承 72
    4.4.2 方法重写 73
    4.4.3 super关键字 74
    4.5 抽象类和接口 76
    4.5.1 抽象类 76
    4.5.2 接口 77
    4.6 常见类 79
    4.6.1 嵌套类 79
    4.6.2 内部类 80
    4.6.3 枚举类 80
    4.6.4 密封类 81
    4.6.5 数据类 82
    4.6.6 单例模式 82
    4.6.7 伴生对象 83
    4.7 委托 84
    4.7.1 类委托 84
    4.7.2 属性委托 85
    4.7.3 延迟加载 87
    4.8 异?!?7
    4.8.1 什么是异?!?7
    4.8.2 try...catch和finally 88
    4.8.3 throw关键字 91
    4.8.4 受检异?!?2
    4.8.5 自定义异?!?3
    4.9 本章小结 95

    第5章 集合 96
    5.1 集合概述 96
    5.2 List接口 98
    5.2.1 List接口简介 98
    5.2.2 不可变List 98
    5.2.3 可变MutableList 101
    5.3 Set接口 104
    5.3.1 Set接口简介 104
    5.3.2 不可变Set 104
    5.3.3 可变MutableSet 106
    5.4 Map接口 107
    5.4.1 Map接口简介 107
    5.4.2 不可变Map 107
    5.4.3 可变MutableMap 109
    5.5 本章小结 110

    第6章 Lambda编程 111
    6.1 Lambda表达式入门 111
    6.1.1 Lambda表达式简介 111
    6.1.2 Lambda表达式返回值 113
    6.2 高阶函数的使用 114
    6.2.1 函数作为参数使用 115
    6.2.2 函数作为参数优化 115
    6.2.3 函数作为返回值 118
    6.3 标准库中的高阶函数 119
    6.3.1 高阶函数操作集合 119
    6.3.2 标准库中的高阶函数 123
    6.4 内联函数 127
    6.4.1 使用内联函数 127
    6.4.2 禁用内联函数 128
    6.5 本章小结 128

    第7章 泛型 129
    7.1 泛型的定义 129
    7.2 泛型的分类 130
    7.2.1 泛型类 130
    7.2.2 泛型接口 131
    7.2.3 泛型方法 132
    7.3 泛型约束 133
    7.3.1 泛型约束的必要性 133
    7.3.2 泛型约束<T : 类或接口> 134
    7.4 子类和子类型 136
    7.4.1 继承与子类型 136
    7.4.2 接口与子类型 137
    7.4.3 可空类型的子类型 137
    7.5 协变与逆变 139
    7.5.1 协变 139
    7.5.2 逆变 140
    7.5.3 点变型 141
    7.6 泛型擦除与实化类型 142
    7.6.1 泛型擦除 142
    7.6.2 泛型通配符 143
    7.6.3 实化类型 144
    7.7 本章小结 145

    第8章 Gradle 146
    8.1 Gradle简介 146
    8.2 Gradle程序 147
    8.2.1 第 一个Gradle程序 147
    8.2.2 Java代码与Kotlin代码共存 152
    8.3 Gradle的任务 153
    8.3.1 Gradle中的project和task 153
    8.3.2 Gradle任务的依赖 154
    8.3.3 Gradle任务的生命周期 155
    8.3.4 Gradle任务集 157
    8.3.5 Gradle默认属性和任务 158
    8.3.6 Gradle增量式更新任务 160
    8.4 Gradle的依赖 162
    8.4.1 Gradle的依赖包管理 162
    8.4.2 公共仓库和依赖配置 162
    8.5 Gradle扩展 164
    8.5.1 Gradle插件自定义扩展 164
    8.5.2 Gradle调用外部扩展 165
    8.6 本章小结 167

    第9章 协程 168
    9.1 协程简介 168
    9.1.1 协程概述 168
    9.1.2 协程的定义 169
    9.1.3 线程与协程实现对比 169
    9.2 协程的基本操作 171
    9.2.1 协程挂起 171
    9.2.2 挂起函数 172
    9.2.3 主协程 172
    9.2.4 协程中的Job任务 173
    9.2.5 普通线程和守护线程 175
    9.2.6 线程与协程效率对比 176
    9.3 协程取消 177
    9.3.1 协程取消 177
    9.3.2 协程取消失效 180
    9.3.3 定时取消 181
    9.3.4 挂起函数的执行顺序 182
    9.3.5 通过async启动协程 183
    9.3.6 协程上下文和调度器 184
    9.3.7 父子协程 185
    9.4 管道 186
    9.4.1 管道简介 186
    9.4.2 管道的关闭 187
    9.4.3 生产者与消费者 188
    9.4.4 管道缓存区 189
    9.5 本章小结 190

    第 10章 坦克大战 191
    10.1 项目介绍 191
    10.1.1 项目概述 191
    10.1.2 开发环境 191
    10.1.3 效果展示 192
    10.2 项目搭建 194
    10.2.1 项目创建 194
    10.2.2 添加游戏引擎 194
    10.3 窗体设计 196
    10.4 绘制游戏元素 198
    10.4.1 绘制墙和草坪 198
    10.4.2 绘制地图 199
    10.4.3 绘制我方坦克 201
    10.5 我方坦克移动 204
    10.5.1 坦克的移动 204
    10.5.2 移动碰撞处理 205
    10.6 子弹 209
    10.6.1 绘制子弹 209
    10.6.2 计算子弹的位置 210
    10.6.3 子弹飞行 213
    10.6.4 销毁脱离窗体的子弹 214
    10.6.5 子弹的攻与受 216
    10.6.6 爆炸物的显示 220
    10.7 敌方坦克 223
    10.7.1 敌方坦克绘制 223
    10.7.2 敌方坦克的移动 224
    10.7.3 敌方坦克自动发射子弹 227
    10.7.4 双方坦克的相互伤害 229
    10.8 大本营 232
    10.8.1 绘制大本营 232
    10.8.2 实现大本营特性 234
    10.9 游戏结束与打包 236
    10.9.1 游戏的结束 236
    10.9.2 Gradle打包游戏 240
    10.10 本章小结 242

    第 11章 DSL 243
    11.1 DSL简介 243
    11.1.1 DSL概述 243
    11.1.2 DSL程序 244
    11.2 DSL的使用 246
    11.2.1 打印简单的HTML标签 246
    11.2.2 打印复杂的HTML标签 247
    11.3 Anko插件 249
    11.4 本章小结 250

    第 12章 Kotlin与Java互
     操作 251
    12.1 在Kotlin中调用Java 251
    12.1.1 调用Java中的getter/setter方法 251
    12.1.2 调用Java中的@NotNull注解 252
    12.1.3 调用Java中的静态成员 253
    12.1.4 SAM转换 254
    12.2 在Java中调用Kotlin 255
    12.2.1 调用Kotlin中的包级函数 255
    12.2.2 调用Kotlin中的实例字段 256
    12.2.3 调用Kotlin中的静态字段和
     方法 257
    12.2.4 调用Kotlin中的集合类 258
    12.2.5 显式申明Kotlin中的异?!?59
    12.2.6 关键字冲突的互操作 260
    12.3 Kotlin与Java中的操作
     对比 261
    12.3.1 语法格式对比 261
    12.3.2 异常检查对比 263
    12.3.3 可变参数对比 264
    12.3.4 类的class对象对比 265
    12.3.5 成员控制权限对比 266
    12.3.6 默认参数函数对比 267
    12.4 本章小结 268

    第 13章 时钟 269
    13.1 时钟项目简介 269
    13.1.1 项目概述 269
    13.1.2 开发环境 269
    13.2 创建时钟项目 270
    13.2.1 创建项目 270
    13.2.2 初始化画布 271
    13.3 绘制基本元素 273
    13.3.1 绘制直线、三角形、矩形 273
    13.3.2 绘制圆形 275
    13.3.3 填充图形 276
    13.3.4 绘制文本 277
    13.4 绘制时钟 277
    13.4.1 绘制时钟的圆环 277
    13.4.2 绘制60个圆点 278
    13.4.3 绘制时钟的数字 279
    13.4.4 绘制时钟的指针 280
    13.4.5 设置当前时间 283
    13.5 本章小结 284

    读者评论

    我要评论

    作者介绍

    黑马程序员,传智播客旗下高端IT教育品牌,成立于2006年,它是由中国Java培训领军人张孝祥老师发起,联合全球*大的中文IT社区CSDN、中关村软件园共同创办的一家专业教育机构。办学至今,我们一直坚守着“为千万人少走弯路而著书,为中华软件之崛起而讲课”的办学理念,坚持培养优秀软件应用工程师的宏伟目标。

    同系列书

    相关图书

    成都麻将产品
  • 精兵劲旅·血染征途:长征  随岁月延伸的红飘带 2020-01-26
  • 【理上网来喜迎十九大】习近平指引中国特色大国外交 2020-01-26
  • 骗子用女子照片制作“通缉令” 诈骗对方11万 2020-01-12
  • 人均24斤冰淇淋喷发500次火山 意大利12个“世界之最” 2020-01-12
  • 2000万元福彩公益金助贫困考生圆大学梦 2020-01-01
  • 揭秘:中纪委如何对高级领导干部进行谈话提醒? 2020-01-01
  • 港澳牙医只需备案即可在粤执业 2019-12-28
  • 乌兰察布(北京)招商路演会 2019-12-28
  • 端午佳节 听习近平谈弘扬中国优秀传统文化 2019-12-27
  • 中央环保督察“回头看” 发现两起虚假整改案例 2019-12-24
  • 环保部就“打好污染防治攻坚战”相关问题答问 2019-12-24
  • 陶方启:推进农业供给侧改革促乡村振兴 2019-12-24
  • 包住内力,在不断变化中寻找契机,可出击可借力亦可卸力。 2019-12-23
  • 深秋烟雾偎婺源文章中国国家地理网 2019-12-23
  • 2017年秋季学期学员第十二支部风采 2019-12-21
  • 10月14日上证指数 kk盘锦棋牌作弊器 吉林省新快3 万人堂心水论坛 云南十一选五 女孩子开什么店比较好赚钱 分分彩走势图解 网络重庆时时彩合买 王者荣耀电竞比分实时数据 炸金花房卡平台