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
,如需转载请自行联系原作者