• HeadFirstKotlin程序设计
  • HeadFirstKotlin程序设计
  • HeadFirstKotlin程序设计
  • HeadFirstKotlin程序设计
  • HeadFirstKotlin程序设计
  • HeadFirstKotlin程序设计
  • HeadFirstKotlin程序设计
21年品牌 40万+商家 超1.5亿件商品

HeadFirstKotlin程序设计

全新正版现货

100.3 7.2折 139 全新

仅1件

江苏无锡
认证卖家担保交易快速发货售后保障

作者[美] Dawn Griffiths、David Griffiths 著,蒲薇榄、陆小鹿 、何楚 译

出版社机械工业出版社

ISBN9787111662358

出版时间2020-08

装帧平装

开本16开

纸张胶版纸

定价139元

货号29119841

上书时间2023-10-14

天涯淘书阁

五年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
正版全新
商品描述

编辑推荐】:


目标读者】:本书适合有一定基本的编程知识(不要求你有Java编程经验)想零基础学习Kotlin的新手阅读。


本书语言和版式活泼,内容讲解深入浅出,是难得的Kotlin入门书。


本书内容涵盖Kotlin的基本知识、用例和对象(包括接口、继承和授权等)以及创建基本Kotlin程序。


书中配备了大量有趣的实例、图示和练习,让读者轻轻松松掌握Kotlin。


 



为什么这本书如此不同】:
基于认知科学和学习理论的新研究,本书采用一种视觉丰富的格式来吸引你,而不是使用以文字为主的方法来使你昏昏入睡。为什么要浪费时间在新的概念中挣扎?这种多感官的学习体验正是为你的大脑真正的工作方式而设计的。



内容简介】:

本书是对Kotlin编程的完整介绍,将帮助你以一种独特的方法学习Kotlin语言(这远远超越了语法和说明手册),并教你如何像一个伟大的Kotlin开发者一样思考。你将学习从语言基础到集合、泛型、lambda以及高阶函数的所有内容。在此过程中,你将使用面向对象和函数式编程。如果你想真正了解Kotlin,这本书正适合你。


 


本书介绍了Kotlin的基本语法、常用类型、面向对象编程以及一些高阶的知识。在所有的章节中,都广泛使用图片和会话的介绍方式,以帮助大脑更容易理解和获取信息。此外还有各种生动的实例、习题,以及有问必答环节。让读者仿佛置身其中,更加高效专注地学习知识,而把一些无关紧要的事情抛之脑后。本书以类似于“划重点”或“记笔记”的方式对某些内容或代码进行注解和说明,读者更容易知晓内容和代码的重要部分。此外,有问必答环节的设计也十分巧妙,它会囊括一些在文中没有提及到,但读者可能会疑惑的问题。



作者简介】:

Dawn Griffiths是一名高级开发人员和高级软件架构师,在IT行业拥有超过20年的工作经验。她写过“Head First”系列中的其他书籍,包括Head First Android Development。她还曾经和她的丈夫David一起开发了动画视频教程The Agile Sketchpad,以一种使你的大脑保持积极参与的方式,教授核心概念和技术。



目录】:


 



引子】: xxi


1 开始:快速入门 1


2 基本类型和变量:关于变量 31


3 函数:跳出主函数 59


4 类和对象:初步认识类 91


5 子类和父类:使用继承 121


6 抽象类和接口:重要的多态 155


7 数据类:处理数据 191


8 空值和异常:使代码安然无恙 219


9 集合:变得有条理 251


10 泛型:从输出推断输入 289


11 lambda和高阶函数:像数据一样使用代码 325


12 内置高阶函数:使你的代码更强大 363


附录i 协程:并行地执行代码 397


附录ii 测试:确保你的代码可以运行 409


附录iii 其他:我们没有涉及的十大内容 419


 



详细目录】:

  • 引子

你的大脑与Kotlin。你想学些新东西,但你的大脑总是帮倒忙,让学习无法继续。你的大脑在想:“*好留出空间来记住那些更重要的事情,比如要避开哪些野生动物。”那么,该如何哄骗你的大脑,让它认为如果不知道Kotlin你将无法生存?


谁适合看本书 xxii


我们知道你们在想什么 xxiii


我们知道你的大脑在想什么 xxiii


元认知:思考何为思考 xxv


我们是这样做的 xxvi


重要说明 xxviii


技术审校团队 xxx


致谢  xxxi


 


 

  • 1  开始

快速入门


Kotlin正在掀起新的浪潮。


自首次发布以来,Kotlin就以其友好的语法,简洁、灵活和强大的功能给程序员留下了深刻的印象。在本书中,我们将教你如何构建自己的Kotlin应用程序。我们将从创建并运行基本的应用程序开始讲解。在此过程中,你将了解Kotlin的一些基本语法,例如基本语句、循环以及条件分支。你的旅程刚刚开始。


 


欢迎来到Kotlin之城 2


你几乎可以在任何地方使用Kotlin 3


本章内容 4


安装IntelliJ IDEA 7


构建一个基本的应用程序 8


你的*个Kotlin项目 11


新增一个Kotlin文件 12


main函数剖析 13


将main函数添加至App.kt文件 14


你可以在main函数里面做些什么呢 16


循环 17


循环示例 18


条件分支 19


带有返回值的if语句 20


更新main函数 21


使用Kotlin的交互式shell 23


你可以在REPL中加入多行代码片段  24


Kotlin工具箱  30


 


 

  • 2  基本类型和变量

关于变量


所有代码都依赖于——变量


本章我们将进一步探索Kotlin,并且向你展示Kotlin变量是如何工作的。你会学习Kotlin的基本类型,例如整型(Int)、浮点型(Float)和布尔型(Boolean),并且学习Kotlin的编译器是如何聪明地从给定的变量值推测出变量类型的。你还将学会如何使用String模板和简短的代码来构建复杂的String类型,并且学会创建数组来存储多个值。*后,你会发现对象对于Kotlin之城如此重要的原因。


 


你的代码需要变量    32


当你声明变量时会发生什么   33


变量保存了指向对象的引用   34


Kotlin的基本类型     35


如何显式声明变量类型    37


根据变量类型正确赋值    38


将一个变量值赋给另一个变量   39


类型转换     40


数值类型转换背后发生了什么   41


小心溢出     42


使用数组存放多个值    45


创建Phrase-O-Matic应用程序   46


向PhraseOMatic.kt中添加代码   47


编译器从数组中元素的值来推测数组的类型  49


var表示该变量可以指向不同数组   50val


表示该变量永远指向同一个数组   51


Kotlin工具箱     58


 


 

  • 3  函数

跳出主函数


现在,是时候更上一层楼了。下面,我们一起来了解一下函数。


到目前为止,你一直将所有的代码写在应用程序的主函数中。但是,如果你想要编写更有条理并且更加易于维护的代码,你需要知道如何将代码拆分为不同的函数。在本章中,你将通过构建一个游戏来学习如何编写函数以及与应用程序交互。你将了解如何编写简明的单个表达式函数。在此过程中,你还将学习如何使用强大的for循环来遍历范围和集合。


 


我们一起来编写一个游戏“Rock、Paper、Scissors” 60


游戏设计概览     61


让程序选择一个选项    63


如何创建函数     64


可以向函数中传入多个值    65


可以从函数中返回一个值    66


单个表达式函数     67


向Game.kt中添加getGameChoice函数  68


getUserChoice函数    75


for循环工作原理     76


询问用户的选择     78


验证用户的输入     81


更强大的布尔表达式    81


向Game.kt中添加getUserChoice函数   83


向Game.kt中添加printResult函数   87


Kotlin工具箱     89


 


 

  • 4  类和对象

初步认识类


现在是时候了解一下Kotlin基本类型之外的类型了。


Kotlin的基本类型迟早会难以满足你的需求,此时,你就需要类的帮助。类是一个模板,它允许你创建自己的对象类型,并定义它们的属性和函数。这里,你将要学习如何设计、定义类以及如何使用类来创建新的对象。你将会看到构造函数、初始化程序块、getter和setter,以及getter和setter是如何保护类的属性的。*后,你将学习Kotlin是如何内置数据隐藏功能,从而节省你的时间、精力和编码量的。


 


使用类定义对象类型 92


如何设计自己的类 93


一起定义一个Dog类 94


如何创建Dog对象 95


如何访问属性及函数 96


创建一个Songs应用 97


神奇的对象创建 98


对象是如何创建的 99


现象背后:调用Dog构造函数 100


深入了解属性 105


灵活的属性初始化 106


如何使用初始化块 107


你必须初始化所有属性 108


如何验证属性值 111


如何编写自定义的getter 112


如何编写自定义的setter 113


Dogs项目的完整代码 115


Kotlin工具箱 120


 


 

  • 5  子类和父类

 使用继承


你是否曾经想过,只需要做一点点改变,对象的类型就会变得完美?


是的,这就是继承的好处之一。在本章,你将学习如何创建子类,以及继承父类的属 性和方法。你将学会如何覆盖(override)属性和方法,从而使类表现出你想要的行 为,并弄清楚什么时候这样做是合适的(或不合适的)。*后,你将学会如何利用继 承避免代码重复,如何利用多态提高代码灵活性。


 


继承帮助你避免代码重复 122


 我们将要做什么 123


 设计一个animal类继承结构 124


 使用继承避免子类中的代码重复 125


 子类应该覆盖什么 126


 我们可以将一些动物分类 127


 添加Canine和Feline类 128


 使用IS-A测试类的层次结构 129


 继承树中的任意子类都满足IS-A测试 130


 创建一些Kotlin动物 133


 使用open关键字声明父类及它的属性和方法 134


 子类是如何继承父类的 135


 如何(以及何时)覆盖属性 136


 覆盖属性不仅仅让你可以指定默认值 137


 如何覆盖方法 138


 被覆盖的方法或属性仍然是open的 139


 向Animals项目中添加Hippo类 140


 添加Canine和Wolf类 143


 哪个方法被调用了 144


 当你调用方法时,变量指向对象的方法进行响应 146


 你可以使用父类型作为方法的参数和返回值类型 147


 更新后的Animals代码 148


 Kotlin工具箱 153


 


 

  • 6 抽象类和接口

 重要的多态


父类继承层次结构只是一个开始。


如果想充分利用多态,你需要设计抽象类和接口。在本章中,你将学习如何使用抽象 类来控制层次结构中的类能否被实例化。你将知道它们如何强制具体的子类提供自己 的实现。你将了解如何使用接口在相互独立的类之间共享行为。在此过程中,你将了 解is、as和when的来龙去脉。


 


再谈Animal类的层次结构 156


 一些类不能被实例化 157


 抽象还是具体 158


 抽象类可以有抽象属性和方法 159


 Animal类有两个抽象方法 160


 如何实现一个抽象类 162


 你必须实现所有的抽象属性和方法 163


 更新Animals项目 164


 独立的类可以有共同的行为 169


 接口可以让你在父类层次结构之外定义共同的行为 170


 让我们定义Roamable接口 171


 如何定义接口属性 172


 声明一个类实现了一个接口 173


 如何实现多个接口 174


 如何决定是创建类、子类、抽象类还是接口 175


 更新Animals项目 176


 接口让你可以使用多态 181


 在哪里使用is操作符 182


 使用when将变量和一组选项进行比较 183


 is操作符通常会进行智能转换 184


 使用as进行显式转换 185


 更新Animals项目 186


 Kotlin工具箱 189


 


 

  • 7 数据类

 处理数据


没人愿意花费比生精力重新造轮子。


大多数应用程序都包含一些主要用于存储数据的类。为了使你的编程生活更轻松, Kotlin开发者提出了数据类的概念。在这里,你将学习如何使用数据类编写更加 清晰、简洁的代码。你将探索数据类工具函数,并学会如何将一个数据对象解构 成它的组件。在此过程中,你将了解默认参数值如何使代码更灵活。*后将为你


介绍Any,它是所有父类的起源。


 


 ==调用了equals方法 192


 equals继承自Any父类 193


 Any类定义的共有行为 194


 我们可能希望用equals检查两个对象是否等价 195


 数据类允许你创建数据对象 196


 数据类覆盖了它们继承的行为 197


 使用copy方法复制数据对象 198


 数据类定义了componentN方法 199


 创建Recipes项目 201


 生成的方法仅包含构造函数中定义的属性 205


 初始化许多属性可能会导致烦琐的代码 206


 如何在构造函数中设置默认值 207


 方法也可以使用默认值 210


 重载方法 211


 更新Recipes项目 212


 Kotlin工具箱 217


 


 

  • 8 空值和异常

 使代码安然无恙


每个人都想编写安全的代码。


好消息是Kotlin的设计本身就是代码安全的。我们首先为你展示Kotlin如何使用可空类 型,这意味着你在Kotlin小城逗留期间几乎不会遇到空指针异常。你将学习如何进行安 全调用,以及如何使用Kotlin的Elvis操作符避免惊慌失措。当我们介绍完空值后,你将 学会如何像专业人士那样抛出和捕获异常。


 


从变量中删除对象引用 220


 用空值删除一个对象引用 221


 你可以在任何能够使用非可空类型的地方使用可空类型 222


 创建一个可空类型的数组 223


 访问可空类型的方法和属性 224


 通过安全调用确保一切安全 225


 链式安全调用 226


 你可以使用安全调用赋值 228


 如果变量的值不为空,使用let执行代码 231


 对数组项使用let 232


 替代if表达式 233


 使用!!操作符故意抛出NullPointerException 234


 创建Null Values项目 235


 在异常情况下抛出异常 239


 使用try/catch捕获异常 240


 使用finally去做无论如何你都想做的事情 241


 异常是Exception类型的对象 242


 你可以显式地抛出异常 244


 try和throw都是表达式 245


 Kotlin工具箱 250


 


 

  • 9 集合

 变得有条理


你想过比数组更灵活的东西吗?


Kotlin有一些好用的集合类可以让你在存储和管理对象组方面有更多的灵活性和更强的 控制力。你想要可以不断增加对象的可变列表吗?你想要排序、打乱和倒序列表的内 容吗?你想要通过名字进行检索吗?或者你想要不动一根手指就实现自动去重吗?只 要你对以上任何一个功能感兴趣,或者想要发掘更多有意思的功能,请继续读下去。 在本章你将找到答案。


 


有用的数组 252


 数组不能处理的事情 253


 Kotlin标准库 254


 List、Set和Map 255


 奇妙的List 256


 创建MutableList 257


 移除一个值 258


 改变元素顺序以及批量更改 259


 创建Collections项目 260


 List允许重复项 263


 如何创建Set 264


 Set如何查重 265


 哈希码与相等性 266


 覆盖hashCode和equals的规则 267


 如何使用MutableSet 268


 复制MutableSet 269


 更新Collections项目 270


 Map的表演时间 276


 如何使用Map 277


 创建MutableMap 278


 从MutableMap移除条目 279


 拷贝Map和MutableMap 280


 完整的Collections项目代码 281


 Kotlin工具箱 287


 


 

  • 10  泛型

从输出推断输入


人人都喜欢通用的代码。


 使用泛型是令代码一致且不易出错的一种策略。在本章中,我们将看到Kotlin的集合类


如何利用泛型避免将Cabbage对象放入List<Seagull>。你将了解编写泛型类、接口和函 数的场景和方法,以及如何将泛型类型限制为特定的父类型。*后,你将学习利用协 变和逆变控制泛型类型的行为。


 


泛型在集合中的使用 290


 如何定义MutableList 291


 在MutableList中使用类型参数 292


 通过泛型类或接口可以做什么 293  接下来要做的事 294


 创建Pet类的层次结构 295


 定义Contest类 296


 添加scores属性 297


 创建getWinners方法 298


 创建一些Contest对象 299


 创建Generics项目 301


 Retailer层次结构 305


 定义Retailer接口 306


 轻松创建CatRetailer、DogRetailer和FishRetailer等对象 307 用out使泛型类型协变 308


 更新Generics项目 309


 再定义一个Vet类 313


 创建Vet对象 314


 用in使泛型类型逆变 315


 泛型类型的局部逆变 316


 更新Generics项目 317


 Kotlin工具箱 324


 


 

  • 11  lambda和高阶函

—  没有更多了  —

以下为对购买帮助不大的评价

正版全新
此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP