Scala包和引入

在Scala中,包的作用域和其他作用域一样地支持嵌套,在下一层作用域中可以访问上一层作用域中的名称。

package com {
package horstmann {
object Utils {
  def percentOf(value: Double, rate: Double) = value * rate / 100
}
package impatient {
class Employee {
  def giveRaise(rate: scala.Double) {
    var salary = 100.0
    salary += Utils.percentOf(salary, rate)
  }
}
}
}
}

串联式包语句

包语句可以包含一个“串”,或者说路径区段,例如:

package com.horstmann.impatient {
package people {
class People {

}
}
}

包对象

包可以包含类、对象和特质,但不能包含函数或变量的定义,每个包都有一个包对象,你需要在父包中定义它,且名称与子包一样。

package com.horstmann.impatient
package object people {
  val defaultName = "John"
}
package people {
class people {
  var name = defaultName //从包对象拿到的常量
}
}

在幕后,包对象被编译成带有静态方法和字段的JVM类,名为package.class,位于相应的包下。

引入

任何地方都可以声明引入,并不局限于文件顶部,import语句的效果一直延伸到包含该语句的块末尾。

如果你想引入包中的几个成员,可以像这样使用选取器:import java.awt.{Color,Font}

选取器语法还允许你重命名选到的成员:import java.util.{HashMap=>JavaHashMap},选取器HashMap=>_将隐藏某个成员而不是重命名它。

隐式引入

每个Scala程序都隐式地以如下代码开始:

import java.lang._

import scala._

import Predef._

后面的引入可以覆盖之前的引入,scala.StringBuilder会覆盖java.lang.StringBuilder而不是与之冲突

Scala包和引入

时间: 2024-10-09 21:00:04

Scala包和引入的相关文章

Scala学习(七)---包和引入

包和引入 摘要: 在本篇中,你将会了解到Scala中的包和引入语句是如何工作的.相比Java不论是包还是引入都更加符合常规,也更灵活一些.本篇的要点包括: 1. 包也可以像内部类那样嵌套 2. 包路径不是绝对路径 3. 包声明链x.y.z并不自动将中间包x和x.y变成可见 4. 位于文件顶部不带花括号的包声明在整个文件范围内有效 5. 包对象可以持有函数和变量 6. 引入语句可以引入包.类和对象 7. 引入语句可以出现在任何位置 8. 引入语句可以重命名和隐藏特定成员 9. java.lang.

Scala包

#引入包的全部成员的办法 import scala.collection._ #引入同一个包中的几个成员 import scala.collection.{A,B} #重名 要 重命名 import scala.collection.mutable._ import java.util.{HashMap =>JavaHashMap} #或隐藏 import java.util.{HashMap=>_,空格_} #默认引入的包 import java.lang._ import scala._

Ch07 包和引入 - 练习

1. 编写示例程序,展示为什么  package com.horstmann.impatient 不同于 package com package horstmann package impatient 回答: 分别使用 package 的效果如下: package com { class T1() {} package hostmann { class T2(t: T1) {} package impatient { class T3(t1: T1, t2: T2) {} } } } 子包里的类

idea没有代码自动提示功能和包自动引入不了问题

idea没有代码自动提示功能和包自动引入不了问题 原因:节电模式 File -> Power Save Mode (被勾选了) 处理方法: File -> Power Save Mode (解除勾选即可)

包的引入,不要引入自己目录下的。

beanutils-1.8.0.zip commons-logging.jar 包的引入: 在项目中创建一个文件夹如libs,然后将整个项目需要的第三方的jar包可以直接拷贝带该目录,随后打开该目录全选->右键->Build path -> add path -> 看到奶瓶子即可 包的引入,不要引入自己目录下的.,布布扣,bubuko.com

Scala包和引用

1.包 Scala包的命名方式有两种.一种和Java一样,通过把package子句放在文件顶端的方式,把整个文件的内容放进包里.如: package scala.actors.Actor 另一种方式可以在package子句之后把要放到包里的定义用花括号括起来.如: package bobsrockets{ package navigation{ //在bobsrockets.navigation包中 class Navigator package tests{ //在bobsrockets.na

快学Scala(7)--包和引入

串联式包名: package com.zhou.impatient { class Manager { } } 此时com包和com.zhou包的成员在这里不可见 文件顶部标记法: package com.zhou package people class Person { } 等价于: package com.zhou{ package people { class Manager { } } } 包对象: package com.zhou.impatient package object p

快学scala-第七章 包和引入

知识点: 1. Scala.Java.C++的包的目的都是为了管理大型程序中的名称.与对象或类的定义不同,同一个包可以定义在多个文件当中.或者在同一个文件中,为多个包贡献内容. 2. Scala的包和其他作用域一样的支持嵌套,可以访问上层作用域中的名称.Scala会遇到默认引入包中的类和自定义包中的类的冲突问题,Java中不会出现这样的问题,包名总是绝对的,从包层级的最顶端开始,但是在Scala中,包名是相对的,就像内部类的名称一样.任何人都可以在任何时候向任何包添加内容. 3. 串联式包语句

【原创】不用封装jar包 直接引入工程使用的方法(类似android的 is Library功能)

1.制作lib工程,这里我简单制作一个测试类 2.eclipse中 java Project工程引入方法 2.1.新建个java工程,在属性配置中选择 "Java Build Path" --> "Projects" --> "Add"  选择刚刚的AJars工程 2.2.编写一个测试类,可以看到不用导入jar包就可以直接使用AJars中的Test类中exe()方法 3.eclipse中web工程引用方法 3.1 新建一web项目,照