scala2.0-杂记
来源:互联网 发布:ppt编程 编辑:程序博客网 时间:2024/05/09 15:40
关于类参数的困惑
对于scala来说,其默认就有个主构造器,一旦类实例化,就会自动调用该主构造器
class test(n:Int){ println(n) override def toString = n def printt() {println(f"class parameter ${n}")}}
这里的n就是类参数,其在类new的时候会被主构造器收集并用来初始化,生存空间仅局限于当前实例化对象,而无法被对象外部所访问,所以如下调用都是合法的:
val obj = new test(1)obj.printt()
而如下调用就是非法的:
obj.n
不过,可以通过将类参数声明为类字段,即:
class test(val n:Int){ println(n) override def toString = n def printt() {println(f"class parameter ${n}")}}
这样,就可以直接调用:
obj.n
2017/02/14 第一次编写
0 0
- scala2.0-杂记
- scala2
- spark2.0-scala2.11.8-hadoop2.8.0配置
- scala2笔记
- Scala2.11.8 + Sbt + Maven + IntelliJ Idea + Spark2.0开发环境搭建备忘
- hive 0.10.0 杂记
- 杂记 Ver 0.0.0
- linux杂记0
- 杂记-0x800700E1错误
- 杂记
- 杂记
- 杂记
- 杂记
- 杂记
- 杂记
- 杂记
- 杂记
- 杂记
- meta标签的典型运用
- POJ 3739 Special Squares 已被翻译
- MyEclipse或Eclipse无法查看类的源代码问题
- Perference标签的使用
- iOS的UI方法大全
- scala2.0-杂记
- myeclipse10破解 run.bat闪退查看原因
- Vim配置#解决鼠标右击粘贴自动缩进问题
- php学习笔记
- Hexo记录
- 里氏替换原则
- C++ Primer课后练习11.20,11.23,11.26,11.27,11.28,11.29,11.30,11.31,11.32
- java生成二维码,可添加logo和文字
- [BZOJ4025][LCT]二分图