老师我对这段代码没太理解。

老师我对这段代码没太理解。

http://img1.sycdn.imooc.com//climg/5eeacb40092c1f9e08190439.jpg

伴生对象里的instance创建的目的只是为了用get()方法接收Holder里的INSTANCE是吧? 那get()方法也没有任何标识怎么知道是instance的get()方法呢?如果有两个变量呢?比如java每个变量对应的的 get方法名字都不同而且一看代码就知道谁是谁的get方法。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

http://img1.sycdn.imooc.com//climg/5eead5ef097b3bf807150517.jpg

1)同学请注意上图,构造方法已经private了哦。

2)这就类似等量替换。

http://img1.sycdn.imooc.com//climg/5eead73d09afe70307210282.jpg

  • 慕田峪2007516 提问者 #1
    哦哦这样我刚看到的地方还没写应该后面写私有了,关于get()=Memorystore的实例这个能理解,但这个get()本身做什么用的?是给instance赋值吗?
    2020-06-18 14:24:35
  • 好帮手慕雪 回复 提问者 慕田峪2007516 #2
    说反了,是=右侧给左侧赋值的。这就是那个单例对象。
    2020-06-18 15:17:42
  • 慕田峪2007516 提问者 回复 好帮手慕雪 #3
    不不,您理解错我的意思了,我说的是instance不是INSTANCE, 我的意思是,companion object下第一个声明的变量不是那个instance:MemoryStore么,Kotlin不是变量声明不赋值就报错么,但没报错,是不是因为下面那个get()把Holder.INSTANCE的值赋给instance了呢?主要是不知道get()到底是什么作用
    2020-06-18 15:46:08
提问者 慕田峪2007516 2020-06-18 10:15:04

http://img1.sycdn.imooc.com//climg/5eeacd8309d82b8306140310.jpg

还有就是为什么MemoryStore这个类的构造方法没有被私有呢?这样的话我不理里面的object直接去拿MemoryStore的实例,不就保证不了单例了吗?

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师