基本语法
1)基本语法
package 包名
2)Scala包的三大作用(和Java一样)
(1)区分相同名字的类
(2)当类很多时,可以很好的管理类
(3)控制访问范围
包的声明
两种方式:
和Java声明方式一样(主流)
package com.atguigu.scalal1015.day03.pack
包语句(几乎没有)
在java中一般一个.java文件只写一个类,但是在scala’中, 一个 .scala文件中一般会写多个类.将来所有的类会默认在一个包中
package aa{
class A
}
包的使用
如何导包和导类
在文件的最顶层导
- 如果我想使用HashMap的话
import java.util.HashMap - 如果想同时导出多个的话
import java.util.{TreeMap, HashMap} - 排除导包,比如说我java.util包下除了HashMap以外其它类都需要导入
这个意思是把HashMap的别名设置为空的,然后再给其它的都导入,
import java.util.{HashMap => , } - 给HashMap起个别名
import java.util.{HashMap=>HM}
那么使用的时候就直接用HM,
import java.util.{TreeMap, HashMap}
object Pack1 {
def main(args: Array[String]): Unit = {
new HashMap[String, String]()
new TreeMap[String, String]()
}
}
在代码的任何的需要的地方导包
什么时候需要用了什么时候导包,比如说我就想在Main函数里面使用,那么就在Main函数里面导包,Main函数外面不能使用
def main(args: Array[String]): Unit = {
import java.util.HashMap
new HashMap[String, String]()
}
通配符导入
比如可以在方法的内部
在类上面
// 给Java下面的所有的类都导入过来
import java.util._
object Pack1 {
def main(args: Array[String]): Unit = {
new HashMap[String, String]()
new TreeMap[String, String]()
}
}
在方法内部
def main(args: Array[String]): Unit = {
// 在方法内部给Java下面的所有的类都导入过来
import java.util._;
new HashMap[String, String]()
new TreeMap[String, String]()
}
包对象
就是定义一个方法,这个方法在当前包下的类,或者子包下的类都可以使用
定义包对象里面的方法
// 这个对象的内的所有属性和方法, 在pack包内的所有的类可以直接使用
package object pack {
def foo() = println("foo...")
}
包内的别的方法调用对象里面的方法
package pack
object Pack2 {
def main(args: Array[String]): Unit = {
foo()
}
}