1 package big.data.analyse.scala.classes 2 3 /** 4 * Created by zhen on 2018/9/15. 5 */ 6 object Packages { 7 def main(args: Array[String]) { 8 val demo = spark.navigation.test.Demo() 9 val content = "use package..." 10 demo.act(content) 11 } 12 } 13 14 package spark.navigation{ 15 abstract class Navigator{ 16 def act(content : String) //声明函数 17 } 18 package test{ 19 class Demo{ 20 def act(content : String) { 21 val nav = impl.Navigation() 22 nav.act(content) 23 } 24 } 25 object Demo{ 26 def apply(): Demo ={ 27 return new Demo 28 } 29 } 30 } 31 package impl{ 32 // private[impl]:包内访问 33 // private[this]:当前对象私有,相同类的不同对象及不同类的对象都不能访问 34 // 包含:private,protected,public 35 private[impl] class Navigation extends Navigator{ 36 override def act(content : String): Unit ={ 37 print(content) 38 } 39 } 40 object Navigation{ 41 def apply(): Navigation ={ 42 return new Navigation 43 } 44 } 45 } 46 }
结果:
总结:
Scala中的包的使用时为了对代码进行分区,以便进行管理和权限设定,对代码的简洁性和直观性都有很好的提升,便于代码重用!