1.类
首先,来看一个简单的JavaBean类Person
package com.zhoujian.kotlindemo;
public class Person {
private String name;
public Person(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
转换成Kotlin代码
package com.zhoujian.kotlindemo
class Person(val name: String)
注意:从java转到Kotlin的过程中public消失了,在kotlin中public是默认可见性,所以可以省略
2.属性
在Kotlin中,属性是头等语言特性,完全取代了字段和访问器方法,在类中声明一个属性和声明一个变量一样,使用val(不可变)
和var(可变的)
class Person(
val name:String,
var isMarried:Boolean
)
val 不可变:生成一个字段和一个getter
var可变:生成一个字段和一个getter、一个setter
在java中使用Person
Person person = new Person("jack",true);
person.getName();
在kotlin中使用Person
val person = Person("jack",true);
person.name
3.自定义访问器
package com.zhoujian.kotlindemo
class Rectangle(val height: Int, val width: Int) {
val isSquare: Boolean
get() {
return height == width
}
}
val rectangle = Rectangle(17,30)
rectangle.isSquare // false
4.Kotlin 源码布局:目录和包
每一个Kotlin文件都能以一条package语句开头,使用关键字import导入
package com.zhoujian.kotlindemo.shaps
import java.util.*
class Rectangle(val height: Int, val width: Int) {
val isSquare: Boolean
get() {
return height == width
}
fun createRandomRectangle():Rectangle{
val random = Random()
return Rectangle(random.nextInt(),random.nextInt())
}
}
package com.zhoujian.kotlindemo.activity
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import com.zhoujian.kotlindemo.R
import com.zhoujian.kotlindemo.shaps.Rectangle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rectangle = Rectangle(1, 2)
println(rectangle.createRandomRectangle().isSquare)
}
}