包的三大作用(和java相同)
* 1. 区分相同名称的类
* 2. 当类很多时,可以很好的管理类
* 3. 控制访问权限
*
包的命名规范
* 1. 只能包含数字、字母、下划线、小圆点. 但是不能数字开头,也不能使用关键字
* 2. 一般都是小写字母加.
* 3. com.公司名称.项目名称.业务模块名称
*
包说明(包语句) / 包的嵌套风格
* 说明
* scala有两种包的管理风格
* 风格1 像Java一样,一个源文件是属于一个包,一个包下有众多源文件
* 风格2 一个源文件中可以声明多个包,子包中的类,可以访问夫包中的类,无需导包
* 语法
* package com {
* class
* object
* package dxm {
* class
* object
* }
* }
*
包对象
* 说明
* 在scala中可在每个包内定义一个同名的包对象,定义在包对象中的成员,可以成为做在包
* 内所有class和object的共享变量,直接被访问
* 语法
* package object 对象名称 { 成员 }
*
导包说明
* 语法 import com.xxx
* 说明
* 1. 全局导入 在文件顶部import导入,整个文件中所有的类都可以使用
* 2. 局部导入 在其作用范围内都可以使用
* 3. 通配符导入 import java.util._
* 4. 给类起别名 import packOuter.packInner.{IuterClass => dawang}
* 5. 指定类名导入 import java.util.{HashSet, ArrayList}
* 6. 屏蔽类 import java.util.{ArrayList =>_,_}
* */
/** * @author gaocun * @create 2021-10-20 6:56 PM */ object 包_01 { /* * 包的三大作用(和java相同) * 1. 区分相同名称的类 * 2. 当类很多时,可以很好的管理类 * 3. 控制访问权限 * * 包的命名规范 * 1. 只能包含数字、字母、下划线、小圆点. 但是不能数字开头,也不能使用关键字 * 2. 一般都是小写字母加. * 3. com.公司名称.项目名称.业务模块名称 * * 包说明(包语句) / 包的嵌套风格 * 说明 * scala有两种包的管理风格 * 风格1 像Java一样,一个源文件是属于一个包,一个包下有众多源文件 * 风格2 一个源文件中可以声明多个包,子包中的类,可以访问夫包中的类,无需导包 * 语法 * package com { * class * object * package dxm { * class * object * } * } * * 包对象 * 说明 * 在scala中可在每个包内定义一个同名的包对象,定义在包对象中的成员,可以成为做在包 * 内所有class和object的共享变量,直接被访问 * 语法 * package object 对象名称 { 成员 } * * 导包说明 * 语法 import com.xxx * 说明 * 1. 全局导入 在文件顶部import导入,整个文件中所有的类都可以使用 * 2. 局部导入 在其作用范围内都可以使用 * 3. 通配符导入 import java.util._ * 4. 给类起别名 import packOuter.packInner.{IuterClass => dawang} * 5. 指定类名导入 import java.util.{HashSet, ArrayList} * 6. 屏蔽类 import java.util.{ArrayList =>_,_} * */ def main(args: Array[String]): Unit = { } } // 包的嵌套风格 + 包对象 package packOuter { //定义 包对象 package object outerObject { var name = "大王" def find = println("大王叫我来巡山") } class OuterClass { val id = 100 println(outerObject.name) outerObject.find def show = println("This's OuterClass") } object outer_test { def main(args: Array[String]): Unit = { new OuterClass().show // 局部导入包 + 为导入的类起别名 import packOuter.packInner.{IuterClass => dawang} new dawang().show } } package packInner { class IuterClass { val id = 100 def show = println("This's IuterClass") } object inner_test { def main(args: Array[String]): Unit = { new IuterClass().show new OuterClass().show } } } }