包的三大作用(和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
}
}
}
}