本章练习
1.Kotlin语言在Android应用程序开发中相对于Java语言有哪些优势?
2.空指针异常(Null Pointer Exception或NPE)指的是什么?Kotlin程序中如何避免NPE?
3.什么是Lambda表达式?为什么要使用Lambda表达式?
4.什么是Kotlin类的扩展?
5.Kotlin语言中位数短的数据类型可以直接转换成为位数长的数据类型吗?如何实现安全的类型转换?
6.请分析:==和===的区别是什么?
7.什么是数据类?定义数据类需要满足哪些条件?
8.什么是类代理?类代理常用的实现方法有哪些?
9.请编写一个方法(或函数)实现阶乘运算n!,并计算:5!。
10.请基于Lambda表达式分别输出一个数组的偶数值、奇数值和全部值。
11.请使用Kotlin语言完成以下程序。
(1)实现3个类,类名1为Vehicle,类名2为Car,类名3为Truck,其中Truck类和Car类是Vehicle类的子类;
(2)Vehicle类包含2个属性及1个方法。属性为:车轮个数wheels、车重weight,方法则用于输出车辆信息;
(3)Car类包含3个属性及1个方法。属性为:车轮个数wheels、车重weight、载人数loader,方法则用于输出车辆信息;
(4)Truck类包含3个属性及1个方法。属性为:车轮个数wheels、车重weight、载重量payload,方法用于输出车辆信息。
12.请使用Kotlin语言完成:基于两个长度相同的可读写列表编写一个函数建立Map类型的数据集合。例如,基于字符串列表['1','2','3',…]和['abc','def','ghi',…],建立数据集合:{"1:abc","2:def","3:ghi",…}。
13.什么是反省技术?请编写程序完成以下内容。
(1)定义一个Person类,Person类包含2个属性,分别为:姓名name、年龄age,Person类中有一个get Info方法;
(2)基于反省技术输出Person类中属性和方法的相关信息。