本章内容包括:
- kotlin的基本类型
- 包
- 类与对象
0. 前言
在上篇文章我们涉及到了kotlin的一些最基本的语法内容,并完成了kotlin的HelloWorld。但是上篇我们在谈到类的时候,说了只介绍下最基本的类,于是在这篇,我们就着重看下类和对象。(更新:由于类和对象的内容过多,我会放在下一篇来说这个)
但是在说到类之前,我们先来看下基本类型。
1. kotlin的基本类型
在说基本类型之前,我们先提及一个Kotlin的基本定义,也是Kotlin和Java最明显的区别之一:
在kotlin中,所有的东西都是对象
那么熟悉Java的同学可能要说了:不对啊,你不是说Kotlin的基础是Java吗,那么Java的基本类型不是对象啊,那Kotlin的基本类型怎么可能不是对象了。
但是事实就是,Kotlin的基本类型,都是对象。
Kotlin的基本类型也被分为了:数字、字符、布尔值、数组与字符串。我们就来逐一谈下。
1.1 数字
1.1.1 整型
和Java一样,Kotlin也有四种不同大小的整型类型:
类型 | 大小(比特) | 最小值 | 最大值 |
---|---|---|---|
Byte | 8 | -128 | 127 |
Short | 16 | -32768 | 32767 |
Int | 32 | -2^31 | 2^31 - 1 |
Long | 64 | -2^63 | 2^63 - 1 |
我们上一篇说到了类性推断,所以Kotlin默认给所有未超过Int
范围的整型值初始化时会推断为Int
类型。如果初始值超过了Int
,就会默认为Long
。如果想直接定义Long的值,就需要在值后面加L
,like:123L
。
val one = 1 // Int
val threeBillion = 3000000000 // Long
val oneLong = 1L // Long
val oneByte: Byte = 1
1.1.2 浮点型
对于浮点型,Kotlin也提供了两种类型:
类型 | 大小(比特) | 有效数字比特数 | 指数比特数 | 十进制位数 |
---|---|---|---|---|
Float | 32 | 24 | 8 | 6-7 |
Double | 64 | 53 | 11 | 5-16 |
对于小数初始化的变量,Kotlin会默认推断为Double
类型。而如果需要将一个数值显示指定为Float
型,就需要在数值后面加F
,like:3.0F
。
val pi = 3.14 // Double
val e = 2.7182818284 // Double
val eFloat = 2.7182818284f // Float,实际值为 2.7182817
但是需要注意的是,Kotlin的数字没有隐式转换(自动类型转换)。
比如Java会在需要的时候,能自动将低级类型数据转换成高级类型数据:
- 数值型数据的转换:byte→short→int→long→float→double。
- 字符型转换为整型:char→int。
但是Kotlin不会:
fun main() {
fun printDouble(d: Double) {
print(d) }
val i =