Scala中的包及其导入

35 阅读2分钟

1. 包的概念及使用;

2. 包的基本使用;

3. 包的定义格式;

4. 包的导入;

(一)包的概念

类文件特别多时,如何去组织?

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

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

(二)包的基本使用

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

示例:

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

2. 在包上右键,新建类

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

(三)包的定义格式

定义格式1: package 包名

定义格式2: package 包名 {}

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

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

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

例如:

package demo.class.exec1 // 错误,因为class是关键字

package demo.12a // 错误,数字开头

提示:三个默认导入 import java.lang._ ; import scala._ ; import scala.Predef._

两种包的管理风格:

风格1:将包名与包含scala文件的目录名相同

image.png

image.png

(四)导入包

【提问】: 是否用过import ?

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

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

image.png

package day01
// 导入 import
//          包名.类名
import day1.Student
object Main {
  def main(args: Array[String]): Unit = {
    new Student
  }
}

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

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

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

(5)导入成员重命名。如果在一个类中需要导入不同包中的成员且成员名相同,可以通过导入成员重命名的方式区分不同包中的成员

image.png

package day0001

// import day001.{A,B,C}
import day001._

// 1. import 导入一个类。 包名.类名
import day001.A
// 2. import 导入多个类。 包名.{类名1, 类名2}
import day001.{A,B,C}
// 3. import 导入包下面的所有的类 包名._
import day001._

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

import day001.{C => C1}

//import day001.A
//import day001.B
class C() {
  println("C")
}
object Main {
  def main(args: Array[String]): Unit = {
    new C1()
    new C()
  }
}