Android之Kotlin简单入门学习

为什么要学Kotlin

1: android开发跟着google的步伐走
Google在2017年的I/O大会上已经宣布kotlin正式成为Android的一级开发语言
2: 别人都在使用
Google发布申明,目前已经有35%的Android专业开发人员使用kotlin(爆发式增长)
3: 以防万一
Java以后要开始收费了,可能导致一部分公司放弃Java
4: 有需求
当前已经有许多公司的招聘要求中,要求开发人员需要会kotlin
5: 简单
学习kotlin一般一周时间就足以完成,且kotlin与Java可以相互调用,觉得kotlin解决不了的地方,仍然可以使用Java编写(非常人性化)


怎么使用Kotlin

保留不重复造轮子的精髓,这里不直接介绍使用步骤,分享几个比较好用的教程地址和记录刚开始比较容易忘记的知识点,或者关键字就ok,本身就是为了做笔记,方便是第一位

1): Kotlin基本环境搭建,语法学习

菜鸟教程: 这个对于新手,我觉得比较易懂,也比较详细

学习Kotlin,看这一篇就够了: 这个相对比较简洁,看个人接受能力,可以先看菜鸟教程,再看这个

kotlin之内部类,匿名内部类与伴生对象

2): Kotlin语法之个人总结

当看完基本语法使用之后,会有些记不住,毕竟和java还是有一些不同,这里记录一些常用的,以便忘记时快速找到
注意:最起码要了解一遍基本语法后再看

新关键字

 fun								//函数定义使用 如:fun sum(a: Int, b: Int): Int {...}
 vararg								//函数的变长参数(类似于java里面参数后面带...) 如:fun vars(vararg v:Int){...}
 var 								//可变变量定义(可以代替任意类型) 如: var x = 5
 val 								//不可变变量定义(只能赋值一次的变量(类似Java中final修饰的变量)) 如: val b = 1
 is									//运算符检测一个表达式是否某类型的一个实例(类似于Java中的instanceof关键字) 如: if (obj is String) {...}
-------------区间↓------------
 in 								//区间 如:for (i in 1..4) print(i)
 step								//步长 如:for (i in 1..4 step 2) print(i)
 ..									//从小到大 如:1..4
 downTo								//从大到小 如:for (i in 4 downTo 1 step 2) print(i)
 until								//排除 如:for (i in 1 until 4) {...}
 ------------区间↑-----------
 when								//类似其他语言的 switch 操作符
 field								//后端变量
 lateinit 							//非空属性必须在定义的时候初始化,kotlin提供了一种可以延迟初始化的方案 如: lateinit var subject: TestSubject
 init 								//主构造器中不能包含任何代码,初始化代码可以放在初始化代码段中,如: init {...}
 constructor						//类也可以有二级构造函数,需要加前缀 如: constructor (name: String, alexa: Int) : this(name) {...}
 inner								//内部类使用 inner 关键字来表示。如 inner class Inner {...}
 Unit								//是一个特殊的返回值,相当于void,意思就是此函数没有返回值
   Any								//所有类的超类(类似与object)

新符号功能

$									//这个符号代表在字符串中加代码块 如:"我叫$name" 或者 "我叫${getName()}"
?									//NULL检查机制
!!									//
:									//指定参数类型,指定继承关系
===									//值相等,对象地址才为true
@									//标签(例如:abc@、fooBar@、break@loop)

位操作符

shl(bits) – 左移位 (Java’s <<)
shr(bits) – 右移位 (Java’s >>)
ushr(bits) – 无符号右移位 (Java’s >>>)
and(bits) – 与
or(bits) – 或
xor(bits) – 异或
inv() – 反向

java的静态在kotlin的形态

class Test {
		//所有里面的方法和属性都是类似java的静态
		companion object {
			public fun get(
			)
		}
 }

Test.get()   	//调用

3): Kotlin语法真正运用到Android开发

自己动手
如果对Kotlin有了大概的了解,基本上就可以开始开发了,只是前期开发慢点,不要想着记得非常熟悉再用,只有真正的使用才会发现问题和深刻记忆!
看别人的简单demo

4):简单的demo例子

package com.example.myapplication

import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*

/**
 * 包含的java对应kotlin写法
 *
 *  1:  btn1 , btn2都是activity_main.xml里面定义的id,在kotlin里面可以直接使用
 *  2:  在java里面的匿名内部类
 *  3:  MainActivity.this
 *  4:  MainActivity.class
 */
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        btn1.setOnClickListener { view ->
            startActivity(Intent(this, MainActivity::class.java))
        }
        btn2.setOnClickListener(object : View.OnClickListener {
            override fun onClick(p0: View?) {
                startActivity(Intent(this@MainActivity, MainActivity::class.java))
            }
        })
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章