Kotlin 语言基础

开始kotlin语言的学习,kotlin 对于Android 来讲还是一门很重要的语言,一起来学习下吧。

简单知识了解:

//    var tv_content: TextView? = null//定义一个可空类型 强大的类型推断
//    https://blog.csdn.net/xiaodouyaer624/article/details/82706568
//    val 相当于 final 因为val不存在set方法
//	  lateinit var tv_content: TextView //lateinit 关键字延时加载
//    @Override 注解变成了 override关键字
//    一个类可继承 open 关键字 和 abstract 关键字
//    companion 关键字 伴生对象 == static
//    ? null类型判断		如果为空就不会在调用后边的 tv_content?.setText()
//	  !! 已经确定不是空,可以放心使用 tv_content!!.setText()

//    NPE 空指针异常 《解决空指针问题》
//    Int Int?	=  int Intenger

//    在 java 里局部变量没有默认值
//    在 kotlin 都没有默认值包括全局变量和局部变量

//    字符串拼接 ${变量名}  或  $变量名
/*	
      字符串换行 <三个引号的作用>
				"""
				第一行
				第二行
				第三行
				中间不需要 \n
				"""
*/

//	  构造方法
//    一个类后边家(),意思是调用了,这个类的无参构造方法
//    一个类存在 主构造函数 和 次构造函数 次构造必须实现主构造函数

//	  字段与属性问题
//    字段 =  属性 + get() + set()
//	  区别:字段会保存状态,属性不会保存状态需要通过幕后字段 Filed 保存状态

//	  帮助理解 幕后字段? 和 幕后属性?
/*
幕后字段
定义:在Kotlin中定义一个普通属性时,会为该属性生成一个field,getter,和setter,其中这个field就称为幕后字段(backing field)
何时会生成幕后字段?
对于var|val属性
Kotlin自动生成了 		setter |getter                                           产生幕后字段
重写了                   setter |getter                                          不产生幕后字段
在重写了的           	setter |getter中使用了field                              产生幕后字段

幕后属性
使用private修饰的属性,就是幕后属性
延迟初始化属性lateinit 
	Kotlin要求所有属性必须由程序员显示初始化
		定义时初始化
		在构造器中赋值初始化
		所以例如Activity里面的控件,都要用lateinit修饰
*/

//     Object   等同于   Object
//     String?  根  Any?
//	   String   根  Any  -->  Any?

/*
     PESC Producer exdends Consumer super 
					 取				  存
		java 中  ? exdends		  ? super 
	  kotlin 中  out			  in
	  kotlin 中	 协变			  逆变
*/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值