android使用kotlin开发基础(二)变量跟属性

基本类型
  • 数字类型中不会自动转型
val sum1: int = 10
val sum2: double = sum1.toDouble()
  • 字符(Char)不能直接作为一个数字来处理

  • 位运算不同(变得更加清晰)
java 下表示   flag   |   flag1a
     flag   &   flag1

kotlin 下表示 flag   or   flag1
     flag    and   flag1 
  • 可以写具体的类型也可以使用val来弱类型(让编译器自己去判断类型)
val v = 12  //is int
val v1 = 12.0 //is  a float
val v2 = "sample"//is a String
val v3  = ActionBar // is a object 
  • String可以像数组一样访问,并且可以被迭代
val v = "simple"
val v1 = v[3]
for(v1  in v ){
print(v1);
}

变量
  • 分可变变量(var)和不可变变量(val)
相对的:存在不可变对象和可变对象,可变对象在实例化之后还可以修改,而不可变对象实例化后不可以修改,这样可以使所有线程访问的都是同一个对象,所以说不可变对象是线程安全的。

一个重要的概念就是:尽可能去使用不可变量(val),不得已的情况下才去使用(var)
  • 使用范型需要指明出来
val v : Any = 23
val v1 : Context = MainActivity 


属性

  • 相比java中bean 的写以及用法,kotlin会显得更加简洁些
java:

public class Person{

String name = "";
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
}

Person p = new Person();
p.setName("xiao hui");
String name = p.getName();

kotlin:

class Person{
val name : String = ""
}

(备注:默认的情况下kotlin会调用set和get方法,当然你也可以修改成你想要的代码)
val p = person()
p.name = "xiao hui "
String name = p.name

  • 当你需要使用到属性自己的值,可以使用kotlin预留字段field(backing field只能在属性访问器内访问)
当操作Java代码的时候,
Kotlin将允许使用属性的语法去访问在Java文件中定义的getter/setter方法。
编译器会直接链接到它原始的getter/setter方法。
所以当我们直接访问属性的时候不会有性能开销。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值