您好,登錄后才能下訂單哦!
1、 scala 里同樣可以定義內(nèi)部類
2、 每個(gè)外部類的對(duì)象的內(nèi)部類,都是不同的類,因此,存數(shù)組時(shí),要注意
3、 內(nèi)部類可以訪問(wèn)外部類的私有屬性,反之不行
package com.xej.learning.class_learning /** * Created by erjun on 2017/8/28. * 內(nèi)部類測(cè)試 */ private[class_learning] class Kafka{ //定義一個(gè)內(nèi)部類 class InnerKafka(val name: String){ var config = "properties.txt" def sayHello(): Unit ={ //內(nèi)部類,可以調(diào)用外部類里private的屬性 //但是,外部類,缺不能訪問(wèn)內(nèi)部類里的屬性 println("---->:\t" + age) } } private var age = 10 import scala.collection.mutable.ArrayBuffer //這個(gè)數(shù)組,只能添加,同一個(gè)對(duì)象里多個(gè)內(nèi)部類對(duì)象 //不能添加,不同對(duì)象的多個(gè)內(nèi)部類對(duì)象 val saveKakfa = new ArrayBuffer[InnerKafka]() def create(name: String): InnerKafka ={ new InnerKafka(name) } } object InnerClass { def main(args: Array[String]): Unit = { val master = new Kafka //同一個(gè)對(duì)象,創(chuàng)建多個(gè)內(nèi)部類對(duì)象 //可以放到同一數(shù)組里 val masterKafka = master.create("masterKafka") val masterKafka2 = master.create("masterKafka2") println("---->\t" + masterKafka.getClass == masterKafka2.getClass)//false val slave = new Kafka val slaveKafka = slave.create("slaveKafka") val slaveKafka2 = slave.create("slaveKafka2") master.saveKakfa += masterKafka master.saveKakfa += masterKafka2 master.saveKakfa.foreach(x => print(x.name + " ")) // master.saveKakfa += slaveKafka } }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。