包的命名
1)命名规则
只能包含数字、字母、下划线、小圆点.,但不能用数字开头,也不要使用关键字。
2)命名规范
一般是小写字母+小圆点
com.公司名.项目名.业务模块名
包说明(包语句)
Scala有两种包的管理风格,一种方式和Java的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如
`com.atguigu.scala`
另一种风格,通过嵌套的风格表示层级关系,如下
这种风格有以下特点:
(1)一个源文件中可以声明多个package
(2)子包中的类可以直接访问父包中的内容,而无需导包
package com{
package atguigu{
package scala{
}
}
}
导包
Java import
- 导类
- 静态导入 : import static
Scala语言给import关键字增加了更多的功能
- 导类 : import scala.util.control.Breaks
导包 : import java.util - 可以在任意地方声明import关键字
- 在导类的时候可以使用下划线来代替星号,表示所有的类 : import java.util._
- Scala在导入相同包中的多个类,可以使用一行进行操作 : import java.util.{ArrayList,List}
- 导入不同包的相同名称的类,隐藏类 (将不要的类隐藏掉): import java.sql.{Date=>,}
- Scala包中的类也不需要import(类似Java中的java.long)
- Scala中的类和Java重名,可以重命名进行区分 : import java.util. {HashMap=>JavaHashMap,_}
- import 类时,默认采用相对路径,在特殊情况下,需要使用绝对路径(root.java.util.HashMap())
–>相对路径(可以改变的路径 : test/test.txt)
–>绝对路径(不可改变的路径(协议+盘符) : file:///c:/test/test.txt)
Scala中有三个默认导入的包
import java.lang._
import scala._
import scala.Predef._
访问权限
在Java中,访问权限分为:
public,private,protected和默认。
在Scala中,你可以通过类似的修饰符达到同样的效果。但是使用上有区别。
(1)Scala 中属性和方法的默认访问权限为public,但Scala中无public关键字。
(2)private为私有权限,只在类的内部和伴生对象中可用。
(3)protected为受保护权限,Scala中受保护权限比Java中更严格,同类、子类可以访问,同包无法访问。
(4)private[包名]增加包访问权限,包名下的其他类也可以使用
Scala中声明属性可以增加访问权限,如果使用private,那么属性方法也会声明为private的关键字
公共访问权限
var id: Int = 1
私有访问权限
private var name: String = _
包访问权限
private[chapter6] var age: Int = 20
受保护的访问权限
Scala中protected访问权限,同包不能访问,只有同类和子类可以访问
protected var email : String = _
包对象
在Scala中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有class和object的共享变量,可以被直接访问。
1)定义
package object com{
val shareValue="share"
def shareMethod()={}
}
2)如采用嵌套方式管理包,则包对象可与包定义在同一文件中,但是要保证包对象与包声明在同一作用域中。
package com {
object Outer {
val out: String = "out"
def main(args: Array[String]): Unit = {
println(name)
}
}
}
package object com {
val name: String = "com"
}