Scala代码如下
package com.langgemap.trackcloud.entry
//伴生类
class MyArray {
private var name: String = "This is class"
println(MyArray.name)
}
//伴生对象
object MyArray {
private var name: String = "This is object"
println(new MyArray().name)
def apply(nums: Int*): Array[Int] = {
val arr = new Array[Int](nums.length)
for (i <- 0 to nums.length - 1) arr(i) = nums(i)
arr
}
}
object ObjectDemo_03 {
def main(args: Array[String]): Unit = {
//类比数组的创建方式
var arr = Array(1, 2, 3) //通过伴生对象和有参的apply方法创建对象
var arr2 = new Array[Int](5) //通过伴生类创建对象
var arr3 = MyArray(1, 2, 3)
println("------")
var arr4 = new MyArray()
}
}
想问下整个main函数开始的执行流程,没有明白为何这样输出
This is object
This is class
------
This is object
以及为何将var arr3注释掉后,就输出
------
This is object
This is class
This is object