如果要利用构造函数,kotlin必须有主构造函数 才能写其他构造函数(这里可以叫次构造函数)
1、主构造函数
可以携带参数,这个参数直接成为全局变量
在项目中的例子
public class GuideViewPagerAdapter(var context:Context) : PagerAdapter() {
private var images: MutableList<View> = null!!
init {
val imageView1 = ImageView(context)
imageView1.setImageResource(R.drawable.guide1)
val imageView2 = ImageView(context)
imageView2.setImageResource(R.drawable.guide2)
val imageView3 = ImageView(context)
imageView3.setImageResource(R.drawable.guide3)
//images = listOf(imageView1,imageView2,imageView3);
images.add(imageView1);
images.add(imageView2);
images.add(imageView3);
}
}
可见kotlin主构造函数就是在类名后写()
2、次构造函数
kotlin利用constructor关键字写次构造函数。
如果有构造函数,主构造必须存在且可以为空
项目中的例子:
public class GuideViewPagerAdapter() : PagerAdapter() {
private var images: MutableList<View> = null!!
constructor(context: Context) : this() {
val imageView1 = ImageView(context)
imageView1.setImageResource(R.drawable.guide1)
val imageView2 = ImageView(context)
imageView2.setImageResource(R.drawable.guide2)
val imageView3 = ImageView(context)
imageView3.setImageResource(R.drawable.guide3)
//images = listOf(imageView1,imageView2,imageView3);
images.add(imageView1);
images.add(imageView2);
images.add(imageView3);
}
}
两种方法都可以这样调用
var adapter: GuideViewPagerAdapter = GuideViewPagerAdapter(this)