包的定义

  1. 基本语法

package 包名

  1. Scala 包的三大作用(和 Java 一样)

(1)区分相同名字的类
(2)当类很多时,可以很好的管理类
(3)控制访问范围

包的命名
1) 命名规则
只能包含数字、字母、下划线、小圆点.,但不能用数字开头,也不要使用关键字。

2)案例实操

  1. demo.class.exec1 //错误,因为 class 关键字
  2. demo.12a //错误,数字开头

3) 命名规范
一般是小写字母+小圆点
com.公司名.项目名.业务模块名

包说明(包语句)

Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包 名和源文件所在路径不要求必须一致 ),包名用“.”进行分隔以表示包的层级关系, 如 com.atguigu.scala。另一种风格,通过嵌套的风格表示层级关系,如下

  1. package com {
  2. package atguigu {
  3. package scala {
  4. }
  5. }
  6. }

第二种风格有以下特点:
(1)一个源文件中可以声明多个 package
(2)子包中的类可以直接访问父包中的内容,而无需导包

  1. package com{
  2. import com.atguigu.scala.Inner
  3. // 在外层包中定义单例对象
  4. object Outer{
  5. var out: String = "out"
  6. def main(args: Array[String]): Unit = {
  7. //外层不能直接访问, 要这样才能访问
  8. println(Inner.in)
  9. }
  10. }
  11. package atguigu{
  12. package scala{
  13. // 内层包中定义单例对象
  14. object Inner{
  15. var in: String = "in"
  16. def main(args: Array[String]): Unit = {
  17. println(Outer.out)
  18. Outer.out = "outer"
  19. println(Outer.out)
  20. }
  21. }
  22. }
  23. }
  24. }
  25. // 在同一文件中定义不同的包
  26. package aaa{
  27. package bbb{
  28. object Test01_Package{
  29. def main(args: Array[String]): Unit = {
  30. import com.atguigu.scala.Inner
  31. println(Inner.in)
  32. }
  33. }
  34. }
  35. }

包对象

在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对 应包下所有 class 和 object 的共享变量,可以被直接访问。

  1. // 这个包对象和包名要一致
  2. package object chapter06 {
  3. // 定义当前包共享的属性和方法
  4. val commonValue = "清华"
  5. def commonMethod() = {
  6. println(s"我们在 ${commonValue} 学习")
  7. }
  8. }

这个文件夹下, 另一个scala, 还是这个包, 包还要同一层级

  1. package chapter06{
  2. object Test02_PackageObject {
  3. def main(args: Array[String]): Unit = {
  4. //能访问到包对象
  5. commonMethod()
  6. println(commonValue)
  7. }
  8. }
  9. }

导包

1)和 Java 一样,可以在顶部使用 import 导入,在这个文件中的所有类都可以使用。
2)局部导入:什么时候使用,什么时候导入。在其作用范围内都可以使用
3)通配符导入:import java.util.
4)给类起名:import java.util.{ArrayList=>JL}
5)导入相同包的多个类:import java.util.{HashSet,ArrayList}
6)屏蔽类:import java.util.{ArrayList=>
,}
7)导入包的绝对路径:new _root
.java.util.HashMap

说明
image.png

注意
Scala中的三个默认导入分别是

  1. import java.lang._
  2. import scala._
  3. import scala._