1.類的聲明
java類的成員變量,構造方法,成員方法聲明方式
public class JavaBean {
private String name;
public JavaBean(String name) {
this.name = name;
}
public void hello(){
System.out.println("name="+name);
}
}
kotlin類的成員變量,構造方法,成員方法聲明方式
class KotlinBean(val name:String){
fun hello(){
println("name"+name)
}
}
區別:
kotlin把成員變量的聲明和構造方法的聲明合併在了一起。
使用val相當於java的private,變量私有;
使用var相當於java的public,變量可以直接被外部類引用。
2.佈局控件的聲明
Java方式
TextView tv_message = (TextView) findViewById(R.id.tv_message);
tv_message.setText("Hello Java!");
Kotlin的方式
tv_message.text = "Hello Kotlin!"
區別:控件不用findviewbyid,直接通過控件的id賦值
3.java與kotlin的創建,相互調用
java類中創建kotlin對象,調用其方法
KotlinBean kotlinBean=new KotlinBean("Peter");
kotlinBean.hello();
kotlin類中創建java對象,調用其方法
var javabean=JavaBean("Petter")
javabean.hello()
4.對象的空指針
java中如果對象爲空,可能會在運行時,拋出空指針異常
JavaBean javaBean=null;
javaBean.hello();
kotlin中的對象通過?符號,在編譯時做空檢查,如果爲空則不運行對象中的方法。
var kotlinbean: KotlinBean? =null
kotlinbean?.hello()
5.循環語句
java
String s="Example";
for (char c : s.toCharArray()) {
System.out.println("c="+c);
}
kotlin
var s="Example"
for (c in s){
println("szy-->"+c)
}
6.方法的重載
java
public void toast(String message){
Toast.makeText(this,message,Toast.LENGTH_LONG).show();
}
public void toast(String message,int length){
Toast.makeText(this,message,length).show();
}
kotlin
fun toast(message:String,length:Int=Toast.LENGTH_SHORT){
Toast.makeText(this,message,length).show()
}
//調用方式
toast("message")
toast("message",0)
區別
kotlin在入參中設置默認值,在調用的時候可以不用傳參數,
相當於重載了java中的只有一個入參的方法。