通过将构造函数设置为私有,可以防止其他类直接实例化该类,从而保证了类的封装性和安全性。 在Kotlin中,可以使用private关键字将构造函数声明为私有。例如: 代码语言:txt 复制 class MyClass private constructor() { // class implementation } 在上述示例中,MyClass的构造函数被声明为私有,因此只能在MyClas...
classStudentconstructor(name:String,age:Int){//代码 ①init{println("主构造函数参数 : name : ${name} , age : ${age} ;")}//代码 ② : 等号右边的 name 是构造函数参数值varname:String=name+" L"//代码 ③ : 等号右边的 age 是构造函数参数值varage:Int=age+1//代码 ④init{println("成员...
classViewprivateconstructor(tt: Int) {...}//主构造函数设置为私有的,则外部不能通过主构造函数进行创建该类;通常用于单例classView @Inject constructor(tt: Int) {...}//这里增加这个Inject注解来标记一个需要注入的依赖项 2、初始化语句块 一个类里面可以有多个初始化语句块,格式是 init {...} classVi...
classPeople(val firstName:String,val lastName:String){//...} 如果构造器有注解,或者有可见度修饰符,这时constructor关键字是必须的,注解和修饰符要放在它之前。 实例 创建一个 Runoob类,并通过构造函数传入网站名: classRunoobconstructor(name:String){// 类名为 Runoob// 大括号内是类体构成varurl:String=...
class RecordingBottomView(context: Context, attrs: AttributeSet?, defStyleAttr: Int): ConstraintLayout(context, attrs, defStyleAttr), View.OnClickListener { constructor(context: Context): this(context, null, 0) constructor(context: Context, attrs: AttributeSet?): this(context, attrs, 0) init { ...
init---initconstructor,name=zhangsan class Student() 等价于 class Student constructor(),如果需要对主构造函数的权限进行控制,可以修改如下。 classStudentprivateconstructor(){...} 3.2 有参主构造函数(普通参数) funmain(){varstu1=Student("xiao ming",23)println("--...
一、伴生对象的目标 1、java的类中有静态成员或函数但是kotlin中没有静态成员或者函数 2、但是伴生对象依赖包级别的函数和对象声明,可以用来替代java中的静态成员和函数 3、伴生对象的本质是静态的 class User private constructor(val nickname: St
class Test private constructor(num: Int){ } class Test @Inject constructor(num: Int){ } 2、辅助(二级)构造函数 Kotlin中支持二级构造函数。它们以constructor关键字作为前缀。 2.1、声明 例: class Test{ constructor(参数列表){ } } 2.2、同时存在主构造函数和二级构造函数时的情况 如果类具有主构造函数,...
sealed class 的构造函数只能拥有两种可见性:默认情况下是 protected,还可以指定成 private,public 是不被允许的。 Constructor must be private or protected in sealed class sealed class 子类可扩展局部以及匿名类以外的任意类型子类,包括普通 class、data class、object、sealed class 等,子类信息在编译期可知。
我们如果希望这个构造函数是私有的,我们可以如下声明:class DontCreateMe private constructor() { }这样我们在代码中,就无法直接使用主构造函数来实例化这个类,下面的写法是不允许的:val dontCreateMe = DontCreateMe() // cannot access it但是,我们可以通过次构造函数引用这个私有主构造函数来实例化对象:...