大数据系列修炼-Scala课程16(2)

核心内容:
1、scala中包的创建
2、scala中包的作用域
3、scala中包对象的使用

1、scala中包的创建

1>scala中不但可以定义类,还可以定义包(在Java当中不可以),而且包还可以嵌套定义

package spark.navigation  
{
    protected abstract class Navigator 
    {
        def act()
    }
    package tests 
    {
        class NavitatorSuite
        {

        }
    }
    package imples  
    {
       class Action extends Navigator 
       {
          def act()={println("Action!")}
       }
    }
}
2、scala中包的作用域

1>不带花括号的包作用域从定义到文件的末尾结束

package IT04   //从定义到文件的末尾结束

2>带花括号的包作用域在整个括号范围之内

package spark.navigation     //整个括号范围内
{
    protected abstract class Navigator //括号范围内
    {
        def act()
    }
    package tests 
    {
        class NavitatorSuite
        {

        }
    }
    package imples  
    {
       class Action extends Navigator 
       {
          def act()={println("Action!")}
       }
    }
}

3>后面的包在前面的包作用域之下

package IT04
package IT05
package IT06   //三级相互嵌套的包层结构
3、scala中包对象的使用

1>在包中可以包含类、对象和特质,但不能定义函数或变量,但是在包对象中可以定义函数和变量
2>在包中可以定义包对象,并且在伴生包里面可以直接访问包对象中的所有属性和方法

package IT04


object App 
{
   def main(args:Array[String]):Unit=
   {
       println(IT04.people.defaultName)  //在外部全名访问包对象成员
   }
}
package object people //包对象
{
   val defaultName = "Scala"
}

package people  //伴生包
{
   class people
   {
     var name = defaultName  //直接访问包对象中的成员
   }
}

你可能感兴趣的:(scala,spark)