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
}
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。