包的定义
- 基本语法
package 包名
- Scala 包的三大作用(和 Java 一样)
(1)区分相同名字的类
(2)当类很多时,可以很好的管理类
(3)控制访问范围
包的命名
1) 命名规则
只能包含数字、字母、下划线、小圆点.,但不能用数字开头,也不要使用关键字。
2)案例实操
demo.class.exec1 //错误,因为 class 关键字demo.12a //错误,数字开头
3) 命名规范
一般是小写字母+小圆点
com.公司名.项目名.业务模块名
包说明(包语句)
Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包 名和源文件所在路径不要求必须一致 ),包名用“.”进行分隔以表示包的层级关系, 如 com.atguigu.scala。另一种风格,通过嵌套的风格表示层级关系,如下
package com {package atguigu {package scala {}}}
第二种风格有以下特点:
(1)一个源文件中可以声明多个 package
(2)子包中的类可以直接访问父包中的内容,而无需导包
package com{import com.atguigu.scala.Inner// 在外层包中定义单例对象object Outer{var out: String = "out"def main(args: Array[String]): Unit = {//外层不能直接访问, 要这样才能访问println(Inner.in)}}package atguigu{package scala{// 内层包中定义单例对象object Inner{var in: String = "in"def main(args: Array[String]): Unit = {println(Outer.out)Outer.out = "outer"println(Outer.out)}}}}}// 在同一文件中定义不同的包package aaa{package bbb{object Test01_Package{def main(args: Array[String]): Unit = {import com.atguigu.scala.Innerprintln(Inner.in)}}}}
包对象
在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对 应包下所有 class 和 object 的共享变量,可以被直接访问。
// 这个包对象和包名要一致package object chapter06 {// 定义当前包共享的属性和方法val commonValue = "清华"def commonMethod() = {println(s"我们在 ${commonValue} 学习")}}
这个文件夹下, 另一个scala, 还是这个包, 包还要同一层级
package chapter06{object Test02_PackageObject {def main(args: Array[String]): Unit = {//能访问到包对象commonMethod()println(commonValue)}}}
导包
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
说明
注意
Scala中的三个默认导入分别是
import java.lang._import scala._import scala._
