对应的字节码:publicfinalclassObj{//可以看到生成了一个class,而类名就是object name// access flags 0x2private<init>()V//注意看,<init>的可见性是`private`L0LINENUMBER8L0ALOAD0//将局部变量表slot 0处的引用入栈,即this引用INVOKESPECIALjava/lang/Object.<init>()V//调用父类的<init>ALOAD0//和上...
as、as?、break、class、continue、do、else、false、for、fun、if、in、!in、interface、is、!is、null、object、package、return、super、this、throw、true、try、typealias、typeof、val、var、when、while... 1-2、软关键字: 软关键字指这些符号 在适用的上下文中当做关键字,而在其他上下文中会被用作标识符...
23)}classStudent{privatevarname:String="zhang san"// 属性get(){// name的getter函数returnfield}set(value){// name的setter函数field=value}privatevarage:Int=18// 属性init{// 初始化代码块, 在构造函数前执行println("Student init...
class Apple { private var speak: String = "小啊小苹果" /* 主构造方法*/ constructor(){ println("主构造方法constructor()调用") } /* 次构造方法*/ constructor(name:String, age:Int):this(){ println("次带参数构造方法constructor(name:$name, age:$age)") } init { println("Apple init") ...
在Kotlin中创建一个单例类的方式极其简单,只需要将class关键字改成object关键字即可。 1 2 3 4 5 6 7 8 9 10 object Singleton { fun singletonTest() { println("singletonTest is called.") } } fun main() { // 这种写法虽然看上去像是静态方法的调用,但其实Kotlin在背后自动帮我们创建了一个Single...
kotlin中 init、constructor、companion object 调用顺序,funmain(){Human()Human.instance}classHuman{privatevarwork:String="医生"constructor(
然后才想到 这 object 不就是声明一个单例嘛。 单例啊,在 Kotlin 里面是一个既当变量名又当作类型的存在,是不需要构造函数的。作为变量名的时候是用了他的 INSTANCE。 【来张反编译的图】 接着又有了新的问题。这么写的话当然是不对的啊。。这个时候S就不是既当爹又当妈了。这回只是一个A类型的变量[...
class SingletonWrapper { companion object { private var instance: MySingleton? = MySingleton fun destroySingleton() { instance = null } } } // 销毁单例对象并强制调用init块 SingletonWrapper.destroySingleton() 在上面的示例中,MySingleton是一个单例对象,SingletonWrapper是用于销毁单例对象的...
classC {//私有函数,所以其返回类型是匿名对象类型privatefun foo() =object{ val x: String="x"}//公有函数,所以其返回类型是 Anyfun publicFoo() =object{ val x: String="x"} fun bar() { val x1= foo().x//没问题val x2 = publicFoo().x//错误:未能解析的引用“x”} ...
硬关键字(Hard Keywords),硬关键字如何情况下都不能作为关键字,具体包括如下关键字。 as、as?、break、class、continue、do、else、false、for、fun、if、in、!in、interface、is、!is、null、object、package、return、super、this、throw、true、try、typealias、val、var、when和while。