1.包

Scala包的命名方式有两种。一种和Java一样,通过把package子句放在文件顶端的方式,把整个文件的内容放进包里。如:

package scala.actors.Actor

另一种方式可以在package子句之后把要放到包里的定义用花括号括起来。如:

package bobsrockets{
package navigation{
//在bobsrockets.navigation包中
class Navigator
package tests{
//在bobsrockets.navigation.tests包中
class NavigatorSuite
}
}
}

另外,Scala在所有用户可创建的包之外提供了名为_root_的包,即任何你能写出来的顶层包都被当做是_root_包的成员。如:

//文件launch.scala
package launch{
class Booster3
}
//文件bobsrockets.scala
package bobsrockets{
package navigation{
package launch{
class Booster1
}
class MissionControl{
val booster1 = new launch.Booster1
val booster2 = new bobsrockets.launch.Booster2
val booster3 = new _root_.launch.Booster3
}
package launch{
class Booster2
}
}
}

  

2.引用

Scala的import与Java的import的差异:
 可以出现在任何地方;
 可以指的是(单利或正统的)对象或包
 可以重命名或隐藏一些被引用的成员
e.g

//只引用linalg中的DenseMatrix和DenseVector
import breeze.linalg.{DenseMatrix, DenseVector}
//将DenseMatrix重命名为BDM
import breeze.linalg.{DenseMatrix => BDM, DenseVector}
//引用linalg中的所有成员
import breeze.linalg._
//引用linalg中除了DenseMatrix的所有成员
import breeze.linalg.{DenseMatrix => _, _}

Scala的import的使用规则:
 简单名x。把x包含进引用名集合;
 重命名子句x => y。让名为x的成员以名称y出现;
 隐藏子句x => _。把x排除在引用名集合之外;
 全包括“_”。引用除了前面子句提到的之外的全体成员。如果存在全包括,那么必须是引用选择的最后一个。
另外,“.scala”文件都隐式的添加了如下引用:

import java.lang._
import scala._
import Predef._

3.访问修饰符

Scala和Java修饰符的不同点,如下表:

保护的作用域
Scala里的访问修饰符可以通过使用限定词强调。格式为private[X]或protected[X]的修饰符表达“直到”X的私有或保护,这里X指代某个所属的包、类或单例对象。
特例:被private[this]标记的定义仅能在包含了定义的同一个对象中被访问。

参考文献:

《Scala编程》

Scala包和引用的更多相关文章

  1. java打jar包,引用其他.jar文件

    大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIF ...

  2. DOS环境下含包并引用第三方jar的java程序的编译及运行

    DOS环境下含包并引用第三方jar的java程序的编译及运行 1.程序目录机构 bin:class文件生成目录 lib:第三方jar包目录 src:源程序文件目录 2.程序代码: 3.程序编译 jav ...

  3. nuget包循环引用问题

    1.项目中有类库YesWay.Nlog.RabbitMQ,依赖项如下YesWay.Nlog.RabbitMQ=>YesWay.Service.Discovery=>YesWay.Log 2 ...

  4. MAVEN 构建包的引用

    1.什么叫构建包的引用? 当你存在两个maven项目分别是项目A,项目B时,且项目B要引用项目A的方法,那么你就用把项目A打成*.jar架包,放到本地的Maven仓库提供给项目B去引用. A.用命令到 ...

  5. Maven 官网 查找&下载 jar包& pom引用 完美方案

    Maven 官网 查找&下载 jar包 & pom引用 问题描述 在我们在开发过程中,经常遇到程序中需要引用的某个版本jar包,但是在公司的私有仓库下载不到的情况. 遇到这种情况,该怎 ...

  6. .Net Core平台下,添加包的引用

    一个程序的开发过程中离不开对程序集(Assembly,将程序集打包好,就成为一个.dll的包文件,它也叫动态链接库(Dynamic Link Library​))的依赖,在以前ASP.Net时代,微软 ...

  7. IDEAidea导入Scala包

    IDEAidea导入Scala包 一.配置windows的scala的环境变量 二.IDEA导入scala插件 1.如图步骤导入IDEA的scala插件 三.添加本地的scala目录 这时候我们应该在 ...

  8. Scala 包

    包的绝对地址_root_.开始 如_root_.scala.collection.mutable.ArrayBuffer

  9. 如何在制作jar包时引用第三方jar包

    我用的是Eclipse打包,但在CMD窗口执行的时候报“ActiveMQ.jar中没有主清单属性”错误. 在网上搜了下,这个与MANIFEST.MF文件有关,该文件没有定义MAIN方法所在类的路径,利 ...

随机推荐

  1. JSP复习

    3.2.2 JSP指令元素: JSP指令 (1) page指令:定义整个页面的全局属性 (2)include指令:用于包含一个文件或代码的文件 (3)taglib指令:用来引用自定义的标签或第三方标签 ...

  2. sqlserver解密加密的存储过程(图解)

    来自博客:http://www.cnblogs.com/wghao/archive/2012/12/30/2837642.html

  3. linux下面得小数计算

    可以通过命令行向awk中传递参数. 这样子传递进去的参数,在awk命令中可以访问.每一项都必须作为单一的一个参数来解释.所以,等号之间不能有空格. 比如说我们传递进去一个学生名字,想查这个学生的得分. ...

  4. easyui input未设id导致的问题

    今天又踩了一个坑,大致是没有给input设id,使用类选择器绑定easyui控件,然后使用name设值,现在值设进去后界面没有显示. 做的界面部分截图如图: 点击下面两个橙色的按钮,通过调用下面的方法 ...

  5. Swagger+ springfox +Spring mvc

    简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...

  6. 获取RequestMapping注解中的属性

    参考:https://www.cnblogs.com/2013jiutian/p/7294053.html @RequestMapping("/value1") @Controll ...

  7. ccf认证模拟题之三---最大的矩形

    问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方图.例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3 ...

  8. 判断Javascript对象是否为空

    判断普通javascript对象是否为空(含有可枚举的属性,自有的.继承的都可以),可使用jQuery 3.2.1版的isEmptyObject()方法: isEmptyObject: functio ...

  9. 【校招面试 之 C/C++】第10题 C++不在构造函数和析构函数中调用虚函数

    1.不要在构造函数中调用虚函数的原因 在概念上,构造函数的工作是为对象进行初始化.在构造函数完成之前,被构造的对象被认为“未完全生成”.当创建某个派生类的对象时,如果在它的基类的构造函数中调用虚函数, ...

  10. Linux跑火车,提升趣味性

     實現跑火車[可陶冶情操,愉悦心情]##下载yum源[root@localhost ~]# wget http://mirror.centos.org/centos/7/extras/x86_64/P ...