每天学一点Scala之内部类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天学一点Scala之内部类相关的知识,希望对你有一定的参考价值。
1、 scala 里同样可以定义内部类
2、 每个外部类的对象的内部类,都是不同的类,因此,存数组时,要注意
3、 内部类可以访问外部类的私有属性,反之不行
package com.xej.learning.class_learning /** * Created by erjun on 2017/8/28. * 内部类测试 */ private[class_learning] class Kafka{ //定义一个内部类 class InnerKafka(val name: String){ var config = "properties.txt" def sayHello(): Unit ={ //内部类,可以调用外部类里private的属性 //但是,外部类,缺不能访问内部类里的属性 println("---->:\t" + age) } } private var age = 10 import scala.collection.mutable.ArrayBuffer //这个数组,只能添加,同一个对象里多个内部类对象 //不能添加,不同对象的多个内部类对象 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 //同一个对象,创建多个内部类对象 //可以放到同一数组里 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 } }
本文出自 “XEJ分布式工作室” 博客,请务必保留此出处http://xingej.blog.51cto.com/7912529/1960131
以上是关于每天学一点Scala之内部类的主要内容,如果未能解决你的问题,请参考以下文章