麻豆成人91精品二区三区,国产91在线播放,加勒比无码专区中文字幕,欧美黑人XXXX高潮猛交

×

大數(shù)據(jù)Scala系列之類(lèi)

分類(lèi):互聯(lián)網(wǎng)熱點(diǎn) 編輯:新網(wǎng)小青年 瀏覽量:1
2020-07-13 16:55:23
大數(shù)據(jù)Scala系列之類(lèi) 1. 類(lèi)的定義 Scala 訪問(wèn)修飾符基本和Java的一樣,分別有:private,protected,public。 如果沒(méi)有指定訪問(wèn)修飾符符,默認(rèn)情況下,Scala 對(duì)象的訪問(wèn)級(jí)別都是 public。 私有(Private)成員 用 private 關(guān)鍵字修飾,帶有此標(biāo)記的成員僅在包含了成員定義的類(lèi)或?qū)ο髢?nèi)部可見(jiàn),同樣的規(guī)則還適用內(nèi)部類(lèi)。 class Outer{ class Inner{ private def f(){println("f")} class InnerMost{ f() // 正確 } } (new Inner).f() //錯(cuò)誤 } (new Inner).f( ) 訪問(wèn)不合法是因?yàn)?f 在 Inner 中被聲明為 private,而訪問(wèn)不在類(lèi) Inner 之內(nèi)。 但在 InnerMost 里訪問(wèn) f 就沒(méi)有問(wèn)題的,因?yàn)檫@個(gè)訪問(wèn)包含在 Inner 類(lèi)之內(nèi)。 Java中允許這兩種訪問(wèn),因?yàn)樗试S外部類(lèi)訪問(wèn)內(nèi)部類(lèi)的私有成員。 保護(hù)(Protected)成員 在 scala 中,對(duì)保護(hù)(Protected)成員的訪問(wèn)比 java 更嚴(yán)格一些。因?yàn)樗辉试S保護(hù)成員在定義了該成員的的類(lèi)的子類(lèi)中被訪問(wèn)。而在java中,用protected關(guān)鍵字修飾的成員,除了定義了該成員的類(lèi)的子類(lèi)可以訪問(wèn),同一個(gè)包里的其他類(lèi)也可以進(jìn)行訪問(wèn)。 package p{ class Super{ protected def f() {println("f")} } class Sub extends Super{ f() } class Other{ (new Super).f() //錯(cuò)誤 } } 類(lèi)的定義示例: //定義Point類(lèi),構(gòu)造器帶有兩個(gè)參數(shù) class Point(var x: Int, var y: Int) { //無(wú)返回值的類(lèi)方法 def move(dx: Int, dy: Int): Unit = { x = x + dx y = y + dy } //沒(méi)有參數(shù)但是返回值為String類(lèi)型的重寫(xiě)方法 override def toString: String = s"($x, $y)" } //創(chuàng)建類(lèi)的實(shí)例 val point1 = new Point(2, 3) point1.x // 2 println(point1) // prints (2, 3) 構(gòu)造器可以帶有默認(rèn)值: class Point(var x: Int = 0, var y: Int = 0){ ... } val origin = new Point // x, y都取默認(rèn)值0 val point1 = new Point(1)//x=1,y=0 println(point1.x) // prints 1 私有成員變量以及重新定義的Getter/Setter方法: private var _x = 0 private var _y = 0 private val bound = 100 def x = _x def x_= (newValue: Int): Unit = { if (newValue < bound) _x = newValue else printWarning } def y = _y def y_= (newValue: Int): Unit = { if (newValue < bound) _y = newValue else printWarning } private def printWarning = println("WARNING: Out of bounds") } val point1 = new Point point1.x = 99 point1.y = 101 // prints the warning 類(lèi)定義中的其他細(xì)節(jié): //在Scala中,類(lèi)并不用聲明為public。 //Scala源文件中可以包含多個(gè)類(lèi),所有這些類(lèi)都具有公有可見(jiàn)性。 class Person { //用val修飾的變量是只讀屬性 的,只帶getter方法但沒(méi)有setter方法 //(相當(dāng)與Java中用final修飾的變量) //字段必須初始化 val id = "1234" //用var修飾的變量,默認(rèn)同時(shí)有公開(kāi)的getter方法和setter方法 var age: Int = 18 //類(lèi)私有字段,有私有的getter方法和setter方法,只能在類(lèi)的內(nèi)部使用 private var name: String = "王老五" //對(duì)象私有字段,訪問(wèn)權(quán)限更加嚴(yán)格的,Person類(lèi)的方法只能訪問(wèn)到當(dāng)前對(duì)象的字段 private val hobby = "旅游" } scala中,在實(shí)現(xiàn)屬性時(shí)你有如下四個(gè)選擇: var foo: Scala自動(dòng)合成一個(gè)getter和一個(gè)setter val foo: Scala自動(dòng)合成一個(gè)getter 由你來(lái)定義foo和foo_=方法 由你來(lái)定義foo方法 2. 構(gòu)造器 注意: 1.主構(gòu)造器會(huì)執(zhí)行類(lèi)定義中的所有語(yǔ)句 2.主構(gòu)造器如果有參數(shù)直接放 置在類(lèi)名之后 class ConstructorDemo ( val id: Int ) { … } 3.主構(gòu)造器變成私有的,可以像這樣放 置private關(guān)鍵字: class ConstructorDemo private ( val id: Int ) { … } 此時(shí),用戶必須通過(guò)輔助構(gòu)造器來(lái)構(gòu)造Person對(duì)象 class ConstructorDemo { private var var1 = "" private var var2 = 0 //輔助構(gòu)造器1 def this(var1:String) { this() //調(diào)用主構(gòu)造器 this.var1 = var1 } //輔助構(gòu)造器2 def this(var1:String, var2:Int) { this(var1) //調(diào)用輔助構(gòu)造器1 this.var2 = var2 } }

聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)

送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)

需注明出處:新網(wǎng)idc知識(shí)百科

免費(fèi)咨詢獲取折扣

Loading
涩爱av520com| 久久另类天堂| 国产高清xxx在线| 黄色视频免费无码| 无码草草| 99精品免费久久久久| 九色永久在线| 无码人妻丰满熟妇区96| 河北 AV 中文在线| 国产怡情院| 中文字幕丰满伦子无码| 色呦福利在线观看| 亚洲男人天堂网址| 亚洲一级高清无码| 国产av一区二| 亚洲三级精品| 免费日本A V| 日韩无码人妻无码| 久久中文字幕av一区二区不卡| 色人阁天堂在线播放| 青草久久久久| 成人无码视频在线播放| 午夜国产视频| 人人操人人88| 国产精品久久一区| 东京热中文AV天堂| 看A级毛片| 玩弄丰满少妇XXXXX性多毛| 国产美女视频91| 色吊丝亚洲欧美| S无码网三站| 精品久久久久久久久久久AⅤ | 蜜桃精品久久久| 天天狠狠夜夜狠狠| 久久中文精品一区| 在线无码视频免费观看| 中文字幕精品一区二区三区| 久久大香蕉精品视频| 琼a| 九九色热| 综合亚洲色区|