Kotlin基本语法和使用

简介:
  • Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。与Java相比,Kotlin的语法更简洁、更具表达性,而且提供了更多的特性。

  • Kotlin是使用Java开发者的思维被创建的,Intellij作为它主要的开发IDE。对于 Android开发者,有两个有趣的特点:

  • 对Java开发者来说,Kotlin是非常直觉化的,并且非常容易学习。语言的大部 分内容都是与我们知道的非常相似,所以能迅速地掌 握它。

  • AndroidStudio作为目前最流行的Android开发工具,能够非常完美地理解、编译运行Kotlin代码。AndroidStudio 3.0之后已经完美支持kotlin

      1.下面是AndroidStudio的配置 

   1.1 在Project对应的build.gradle文件中添加如下代码:

            ext.kotlin_version = '1.1.2-4' //kotlin版本号

       classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 

           1.2 在module对应的build.gradle文件 中添加代码::

            添加插件 apply plugin: 'kotlin-android' 

            添加依赖库 compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

            重新build project就可以使用kotlin了。

  2.下面说下kotlin的基本语法(借鉴了Kotlin的官网文档)

        基本类型Basic Types

   2.1 Number类型

    

            定义变量

    val a: Int 10000

    val boxedA: Int

    val b: Byte 1

    每个Number类型的变量支持如下方法进行转换

    

    如:val i: Int b.toInt()

   2.2 Operations

    如 val = (shl 2) and 0x000FF000

     

       2.3 Characters

     字符型 定义如:val c: Char = 'C'

    2.4 Booleans

    布尔类型 定义如:val b: Boolean = false;

   2.5 Arrays 

    数组类型 定义如:val x: IntArray intArrayOf(1, 2, 3)

  2.6 Strings

    字符串类型 定义如:val "Hello, world"

  

  3.基本语法

  3.1 if语句

  

 

    3.2 when语句(替代了java里的switch)

  

   3.3 for循环语句

  

  循环遍历集合collection里面的数据 并输出

   3.4 while 和 do...while语句和java类似

  

 4. 方法的定义

  格式如:fun 方法名(参数名 :参数类型):返回值类型{

      }

   比如:

  

  我们还可以给参数设置默认值 如:

  fun read(b: Array<Byte>, off: Int 0, len: Int b.size()) { ... }

  5. 类的定义

  格式如:class 类名{

      }

  在Kotlin中,一个类有一个primary constructor,一个或多个secondary constructors。primary constructor 属于类头部分,它在类名之后。

  

  如果primary constructor没有任何注解或者指示符,constructor关键字可以被省略。

  

       相反,如果primary constructory有注解或者可见的指示符,constructor是必须的。

  

  primary constructor不能包含任何的代码,初始代码可以放在初始块中,初始化代码块以init关键字开头。

  

  需要注意的是,在主构造函数里,可以直接用这些参数变量赋值给类的属性,或者用构造代码块来实现初始化。

  

 

  Secondary Constructors

  除了primary constructory,还有secondary constructors,同样也是constructor开头,位于类体中。 
值得说明的是,如果primary constructory和secondary constructors同时存在,每个secondary constructor需要委托到primary constructor中去,或者间接通过另一个secondary constructors来委托。使用方法就是使用            this,表示委托到本类的另一个构造函数中。

  

  如果非抽象的类没有声明任何的构造函数,它默认继承一个没有任何参数的公有构造器,这个跟Java中的默认构造器类似。如果希望它继承的是一个私有的构造器,就需要显示的指明。

  

  创建类的对象实例我们可以这么实现

  val invoice = Invoice()

  val customer = Customer("帅气的码农")

 

  6. 类的继承

   用“:”冒号实现类的继承

   定义一个父类 Person

   open class Person(age: Int)  //open关键字跟Java中的final是相反

   子类继承

   class Child(ageInt) : Person(age)

   如果父类没有primary constructor,子类的每个secondary constructor在右边使用super来对它进行初始化。

   class Child : Person {

    constructor(ctx: Context) : super(ctx) { }

    constructor(ctx: Context, attrs: AttributeSet) : super(ctx, attrs) { }

    }

  7. 方法重写

   重写成员函数

   对于可以重写的函数,都需要显示的指明,使用的是open关键字。如果没有,在子类中声明跟父类相同的方法是非法的。

   open class Person {

     open fun v() {}

     fun v() {}

      }

   class Child() : Base() {

      override fun v() {}

    }

  在子类中被标记为override的成员函数本身也是可以被重新的,也就是open的,如果希望它禁止被重写,需要使用final关键字。

      重写规则

      如果一个类继承自多个类,并且它的这些父类都有同一个可以重写的函数,那么这个类必须重写这个函数并且提供它自己的实现,另外在子类中指示父类的方法是super<A>,A为父类类名,这样就可以指示不同的父类            了。

 8. 抽象类

  抽象类

  跟Java一样,使用abstract关键字。

 9. Companion Objects

  Kotlin 移除了 static 的概念。通常用 companion object 来实现类似功能。

  我们在 Activity 定义一个静态类型的 string,名叫TAG,和一个启动 Activity 的静态方法:

  

  我们用kotlin可以这么写:

  


本文转自lzwxx 51CTO博客,原文链接:http://blog.51cto.com/13064681/1943440

相关文章
|
11月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
112 2
|
11月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
本系列教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。若需快速学习Kotlin,建议查看“简洁”系列教程。本期重点介绍了Kotlin与Java的共存方式,包括属性、单例对象、默认参数方法、包方法、扩展方法以及内部类和成员的互操作性。通过这些内容,帮助你在项目中更好地结合使用这两种语言。
136 1
|
11月前
|
数据安全/隐私保护 Kotlin
Kotlin语法 - 类成员
Kotlin语法 - 类成员
|
11月前
|
IDE 开发工具 数据安全/隐私保护
Kotlin语法 - 类成员
本教程详细讲解Kotlin语法,适合深入学习。若需快速掌握,推荐“简洁”系列教程。内容涵盖类成员、函数与方法、属性访问控制及初始化等。类成员包括方法和属性,函数独立于类,属性访问通过getter/setter实现,支持延迟初始化。
122 3
|
11月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
Kotlin语法笔记(28) -Kotlin 与 Java 混编
179 2
|
11月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
187 1
|
11月前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。若需快速入门,建议查阅“简洁”系列教程。本文重点探讨Kotlin与Java共存的高级话题,包括属性访问、空安全、泛型处理、同步机制及SAM转换等,助你在项目中逐步引入Kotlin。
101 1
|
11月前
|
人工智能 Scala Kotlin
Kotlin语法 - 运算符与中缀表达式
Kotlin语法 - 运算符与中缀表达式
|
11月前
|
IDE 开发工具 开发者
Kotlin语法 - 函数与Lambda表达式
本教程详细讲解了Kotlin中的函数与Lambda表达式,包括函数的基本定义、默认返回值类型、匿名函数、Lambda表达式的定义及简化、Lambda与函数引用的结合使用,以及如何在Lambda中实现循环控制。适合希望深入了解Kotlin语法的开发者。
133 1
|
11月前
|
JavaScript Java Kotlin
Kotlin语法 - 常量与变量
Kotlin语法 - 常量与变量