1、 scala 里同样可以定义内部类
2、 每个外部类的对象的内部类,都是不同的类,因此,存数组时,要注意
3、 内部类可以访问外部类的私有属性,反之不行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
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 masterKafka 2 = master.create( "masterKafka2" )
println( "---->\t" + masterKafka.getClass == masterKafka 2 .getClass) //false
val slave = new Kafka
val slaveKafka = slave.create( "slaveKafka" )
val slaveKafka 2 = slave.create( "slaveKafka2" )
master.saveKakfa + = masterKafka
master.saveKakfa + = masterKafka 2
master.saveKakfa.foreach(x = > print(x.name + " " ))
// master.saveKakfa += slaveKafka }
}
|
本文转自故新51CTO博客,原文链接:http://blog.51cto.com/xingej/1960131 ,如需转载请自行联系原作者