包的概念
Scala中的包可以定义在文件的开头,也可以在代码的任意位置。
作用: 区分同名的类; 类很多时,更好地管理类;控制访问范围;
包的基本使用
基本步骤:创建包 → 创建对象(类) → 导入类
示例:
1. 创建包。右键,新建软件包。名称小写。
2. 在包上右键,新建类
3. 在测试文件中引入类,使用。
包的定义格式
定义格式1: package 包名
定义格式2: package 包名 {}
定义格式3: package 包名{ package 包名 }
包名称应全部为小写 ,只能包含数字,字母,下划线,小圆点。不能使用数字开头,也不要用关键字。 **
导入包
Scala的导入语法:在Scala中显式导入包使用import关键字。
(1)import 包名 导入这个包下的顶层对象
(2)通配符导入: import 包名._ 导入这个包下所有的类
(3)import 包名.类名 导入这个包下的具体的类
(4)导入相同包的多个类:import java.util.{HashSet, ArrayList }
(5)导入成员重命名。如果在一个类中需要导入不同包中的成员且成员名相同,可以通过导入成员重命名的方式区分不同包中的成员,其语法格式为:
import java.util.{ArrayList=>JL} 表示把util包中的ArrayList类重命名为JL。
(6)局部导入:什么时候用,什么时候import。在其作用范围内部都可以使用。
(7)导入成员隐藏类。如果一个包中包含多个类,除包中某一个类之外都需要导入,可以使用导入成员隐藏类的方法,其语法格式为:把包中的A不导入。import 包.{A=>_ , _}
package jh.com
class Student(var name:String) {
def sayHello(): Unit = {
println(s"${name}")
}
}
package jh
// 导入jh下的com下的Student类
import jh.com.Student
object TestStudent {
def main(args: Array[String]): Unit = {
val stu = new Student("小花")
stu.sayHello()
}
}
导入
别的文件中的类,对象,特质.....
同一个包下面的文件,相互之间不需要import
- 同时导入多个类: import 包.{类1,类2}
import jhart.com.model.Stdent
import jhart.com.model.Teacher
- 同时导入包下的所以的类
import jhart.com.model._
- 导入类之后,重命名
import jhart.com.model.{Student => Stu}
package jhart.com
// 导入
// 别的文件中的类,对象,特质.....
// 同一个包下面的文件,相互之间不需要import
import jhart.com.model.Student
object Test {
def main(args: Array[String]): Unit = {
// 不需要import,因为Student和当前测试文件在同一包下面
new Student()
}
}
package jhart.com
// 导入
// 别的文件中的类,对象,特质.....
// 同一个包下面的文件,相互之间不需要import
// 1. 同时导入多个类: import 包.{类1,类2}
// import jhart.com.model.Stdent
// import jhart.com.model.Teacher
// 2. 同时导入包下的所以的类
import jhart.com.model._
// 3. 导入类之后,重命名
import jhart.com.model.{Student => Stu}
object Test {
class Student() {
println("Student")
}
def main(args: Array[String]): Unit = {
// 不需要import,因为Student和当前测试文件在同一包下面
new Stu()
new Student()
new Teacher()
}
}