據我所知,Scala中的val
是一個無法替代的值。所以...爲什麼我可以修改這樣的JFrame和JLabel,如果它們被聲明爲val
?在Scala中修改val。爲什麼我能做到這一點?
package view
import javax.swing.JFrame
import javax.swing.JLabel
import java.awt.BorderLayout
object Hello {
def main(args: Array[String]) {
println(hello)
val frame = new JFrame
val label = new JLabel()
// here I am modifying val's!
label setText ("hello")
frame setSize (500, 500)
frame getContentPane() setLayout (new BorderLayout)
frame add (label, BorderLayout CENTER)
frame setVisible (true)
frame setDefaultCloseOperation (JFrame EXIT_ON_CLOSE)
}
}