包及其导入

43 阅读2分钟

包的概念

Scala中的包可以定义在文件的开头,也可以在代码的任意位置。

作用: 区分同名的类; 类很多时,更好地管理类;控制访问范围;

包的基本使用

基本步骤:创建包 → 创建对象(类) → 导入类

1.创建包。右键,新建软件包。名称小写。

屏幕截图 2025-11-24 150613.png

2.在包上右键,新建类

package jhart

class Student {
  println("student...")
}

屏幕截图 2025-11-24 151921.png

3.在测试文件中引入类,使用

package jhart

object Main {
  def main(args: Array[String]): Unit = {
    new Student()
  }
}

屏幕截图 2025-11-24 151947.png

包的定义格式

定义格式1: package 包名

定义格式2: package 包名 {}

定义格式3: package 包名{ package 包名  }

[注意]   一个惯例是将包命名为与包含 Scala 文件的目录名相同。

包名称应全部为小写,只能包含数字,字母,下划线,小圆点。不能使用数字开头,也不要用关键字。

导入包

Scala的导入语法:在Scala中显式导入包使用import关键字。

代码示例

package art
// 导入 import
//           包名.类名
import jhart.Student

(1)import 包名  导入这个包下的顶层对象

(2)通配符导入: import 包名._ 导入这个包下所有的类

(3)import 包名.类名 导入这个包下的具体的类

(4)导入相同包的多个类:import java.util.{HashSet, ArrayList }

图片示例

屏幕截图 2025-11-24 154632.png

代码示例

package toolTest

// 1.import 导入一个类,包名.类名
// 2.import 导入多个类,包名.{类名1,类名2}
// 3.import 导入包下边的所有的类,包名._

// import tools.A
// import tools.B
// import tools.C

// import tools.{A, B, C}

import tools._

object Main {
  def main(args: Array[String]): Unit = {
    new A()
    new B()
    new C()
  }
}

(5)导入成员重命名。如果在一个类中需要导入不同包中的成员且成员名相同,可以通过导入成员重命名的方式区分不同包中的成员,其语法格式为:import java.util.{ArrayList=>JL}表示把util包中的ArrayList类重命名为JL。

(6)局部导入:什么时候用,什么时候import。在其作用范围内部都可以使用。

(7)导入成员隐藏类。如果一个包中包含多个类,除包中某一个类之外都需要导入,可以使用导入成员隐藏类的方法,其语法格式为:把包中的A不导入。import 包.{A=>_ , _}

代码示例

package tools

class C {
  println("C")
}
package toolTest

// 4.如果导入一个类,与现有类名有冲突?
// 导入类的时候,可以改下名字—重命名

import tools.{C => C1}

class C() {
  println("C")
}

object Main {
  def main(args: Array[String]): Unit = {
    new C1()
    new C()
  }
}