W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
我們回到前面定義的類 ArrayElement,它有一個參數(shù) conts,其唯一的目的是用來復(fù)制到 contents 成員變量。而參數(shù)名稱 conts 是為了讓它看起來和成員變量 contents 類似,而有不至于和成員變量名沖突。
Scala 支持使用參數(shù)化成員變量,也就是把參數(shù)和成員變量定義合并到一起來避免上述代碼:
class ArrayElement(val contents: Array[String])
extends Element {
}
要注意的是,現(xiàn)在參數(shù) contents 前面加上了 val 關(guān)鍵字,這是前面使用同名參數(shù)和同名成員變量的一個縮寫形式。使用 val 定義了一個無法重新賦值的成員變量。這個成員變量初始值為參數(shù)的值,可以在類的外面訪問這個成員變量。它的一個等效的實現(xiàn)如下:
class ArrayElement(val x123: Array[String])
extends Element {
val contents: Array[String] = x123
}
Scala 也允許你使用 var 關(guān)鍵字來定義參數(shù)化成員變量,使用 var 定義的成員變量,可以重新賦值。此外 Scala 也允許你使用 private,protected,override 來修飾參數(shù)化成員變量,和你定義普通的成員變量的用法一樣。 比如:
class Cat {
val dangerous =false
}
class Tiger (
override val dangerous: Boolean,
private var age: Int
) extends Cat
這段代碼中 Tiger 的定義其實為下面類定義的一個縮寫:
class Tiger(param1: Boolean, param2: Int) extends Cat {
override val dangerous = param1
private var age = param2
}
兩個成員都初始化自相應(yīng)的參數(shù)。我們?nèi)我膺x擇了這些參數(shù)名,param1 和 param2。重要的是它們不會與范圍內(nèi)的任何其它名稱沖突。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: