6.scala中的包

作者: bigdataer | 来源:发表于2017-03-21 19:45 被阅读54次

版权申明:转载请注明出处。
文章来源:http://bigdataer.net/?p=287

排版乱?请移步原文获得更好的阅读体验

1.基础特性

scala中的包和java中的包类似,都是用来在大型工程中给类限定一个命名空间。有如下特性:
(1)包可以像内部类那样嵌套
(2)包路径不是绝对路径。
(3)包声明链net.bigdataer.blog并不会自动将中间包net和bigdataer变为可见。
(4)位于文件顶部不带花括号的包声明在整个文件范围内都有效。

2.包对象

包对象是scala为了突破jvm的限制,将工具函数或者常量类添加到包下面而设计的。这样,一个包既可以包含类、对象、特质也能包含函数或者变量。每个包都有一个包对象,需要在父包中定义,且名字和当前包名一样。举例:

package net.bigdataer
package object blog{
 val theme:String = "大数据"
}
package blog{
 class Post{
 val title = theme //从包中获取常量,这里也可以调用包提供的函数
 }
}

包对象被编译后会生成一个.class文件,位于相应的包下面。比如上面的包对象会被编译为blog.class并且位于net.bigdataer包下面。

3.重命名和隐藏方法

由于在scala中可以直接使用java中的类,这样会造成类重名,防止在使用中出现错误,可以在包引入语句中对要引入的类做重命名操作,如:

import java.util.{HashMap => JavaHashMap}
import scala.collection.mutable._

这样,java中的HashMap在使用中就为JavaHashMap而避免了与scala中的HashMap冲突。
使用类似HashMap => _并不是表示重命名,而是将HashMap隐藏。如:

import java.util.{HashMap => _,_}
import scala.collection.mutable._

这样隐藏了对java中HashMap的引入,只剩下scala中的HashMap.

更多文章请关注微信公众号:bigdataer

相关文章

  • 6.scala中的包

    版权申明:转载请注明出处。文章来源:http://bigdataer.net/?p=287 排版乱?请移步原文获得...

  • python中的包

    为了组织好模块,通常会将多个模块放在一个包。包是python模块文件所在的目录,且该目录下必须存在__init__...

  • 胆小的包中

    今天包中带上了新花环,还是很开心的。 But―― 包中的花环被雯雯拿走了,包中完全不知道发生了什么…… 这么多人围...

  • Python中的包

    目录 什么是python的包与模块 包的身份证 如何创建包 包的倒入 模块的导入 什么是pytlhon的包 包就是...

  • Scala中的包以及包对象

    跟java中一样,scala中也有包的概念,主要作用也差不多,但是还是有所区别的:scala中支持package的...

  • scala 包和引入和this.type

    1.scala包 scala的包和Java中的包的目的是相同的:管理大型程序中的名称。要增加条目到包中,可以将其包...

  • 接口

    在testO包中 在testT包中 运行的结果:

  • Swift-闭包

    Swift 闭包 函数 ()->() Swift 中的闭包和 Objective-C 中的 block 类似,闭包...

  • 包中 #你的包里有什么

    发现这个主题很好玩,不知道平常写些什么,第一篇文章就发这个吧。 1. 据说是天然的唇膏 2. 大概有200流明...

  • python中闭包,闭包的实质

    闭包这个概念好难理解,身边朋友们好多都稀里糊涂的,稀里糊涂的林老冷希望写下这篇文章能够对稀里糊涂的伙伴们有一些帮助...

网友评论

    本文标题:6.scala中的包

    本文链接:https://www.haomeiwen.com/subject/bwngnttx.html