println("I'm in inner class") } } } fun main(args: Array<String>) { ObjectOuter.Inner.method() } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 2. 伴生对象(Companion object) 在阐述伴生对象之前,首先我们要明确一点:在Kotlin中是没有static关键字的,也就是意味着没有了静态方法和静态成员。那么...
最近开始使用kotlin写项目了,这几天一直对object,companion object,内部类和inner class搞得有点迷糊 现在抽空,理清一下他们之间区别 我定义了一个class A 然后再class A内部分别定义了class B,object C,companion object D,inner class E四中不同的类
kotlin的内部类与java的内部类有点不同java的内部类可以直接访问外部类的成员,kotlin的内部类不能直接访问外部类的成员,必须用inner标记之后才能访问外部类的成员 classAAA{vara=0classBBB{//此时,BBB类的内部是不能直接用a变量的varb=a//编译无法通过}}classAAA{vara=0innerclassBBB{//此时,BBB类的内部...
println("Hello, object !") } } fun main(args: Array<String>) { println(User.username) // 跟Java的静态类一样的调用形式 println(User.password) User.hello() } Kotlin中还提供了伴生对象,用companion object关键字声明: class DataProcessor { companion object DataProcessor { fun process() { print...
data class UserBean(val username :String, val password : String) 1. 主构造函数至少包含一个参数 参数必须标识为val或者var 不能为abstract、open、sealed或者inner 不能继承其他类(但可以实现接口) 数据类可以在解构声明中使用 val user = UserBean("Wjx", "Wjx") ...
object DemoManager {privatevalTAG="DemoManager"funa(){ Log.e(TAG,"此时 object 表示 声明静态内部类") } } 2.2 声明静态内部类 类内部的对象声明,没有被inner修饰的内部类都是静态的 classDemoManager{ object MyObject {funa(){ Log.e(TAG,"此时 object 表示 直接声明类") ...
Kotlin 的类和接口在概念上跟 Java 是一样的,但是用法存在一些差别,比如继承的写法、构造函数和可见性修饰符的不同等,此外还有一些 Java 中没有的概念,如数据类、密封类、委托和 object 关键字等。下面从类和接口的定义开始,感受一下 Kotlin 的非凡之处吧!
3. 伴生对象(Companion Object) 众所周知,Kotlin是没有static关键字的,为了使用这种概念,其提供了包级别函数及伴生对象。这两者的区别是伴生对象可以直接访问其外部类中私有成员,而包级别函数不行。 3.1 示例 伴生对象的示例如下: classCompanionOuter{companionobjectCompanionInner{funcompanionPrint(){println("companion...
object DemoManager { private val TAG = "DemoManager" fun a() { Log.e(TAG,"此时 object 表示 声明静态内部类") } } 2.2 声明静态内部类 类内部的对象声明,没有被inner修饰的内部类都是静态的 class DemoManager{ object MyObject { fun a() { ...
同时,和object类似,可以给companion object命名,也可以不给名字,这个时候它会有个默认的名字:Companion,而且,它只在类里面能定义一次: 代码语言:javascript 复制 classMyClass2{companion object CompanionName{valINNER_PARAMETER="can only be inner"funnewInstance()=MyClass2("name")}}classMyClass3{companion obje...