// 包和引入
// 包也可以像内部类那样嵌套
// 包路径不是绝对路径
// 包声明链x.y.x并不自动 将中间包x和x.y变成可见
// 位于文件顶部不带花括号的包声明在整个文件范围内有效
// 包对象可以持有函数和变更
// 引入语句可以引入包、类和对象
// 引入语句可以出现在任何位置
// 引入语句可以重命名和隐藏特定成员
// java.lang、scala和predef总是被引入 // 7.1 包
package com {
package ooccp {
package www { }
}
} // 可以在一个文件当中包含多个包的内容
package com {
package ooccpp {
package test{ }
}
}
package org {
package ooccpp {
package test{ }
}
} // 7.2 包的作用域规则
package com {
package ooccpp{
object Utils {
def percentOf(value: Double, rate: Double) = value * rate / 100
}
package sswss {
class Employee {
var salary = 0
def giveRaise(rate: Double): Unit = {
salary += Utils.percentOf(salary,rate) // 使用绝对包名
val subordinates = new _root_.scala.collection.mutable.ArrayBuffer[Int]
}
}
}
}
} // 7.3 串联式包语句
package com.ooccpp.www {
// com和com.ooccpp的成员在这里不可见
package Person { }
} // 7.4 文件顶部标记法
/**
* package com.ooccpp.www
* package aa
* 等同于
* package com.ooccpp.www{
* package aa{
*
* }
*/ // 7.5 包对象
// 包可以包含类、对象和特质,但不能包含函数或变量的定义。
/**
* package com.horstmann.impatient
* package object people {
* val defaultname = "John Q. public"
* }
* package people {
* class Person{
* var name = defaultname // 从包对象拿到的常量
* }
* }
* defaultName不需要加限定词,因为它位于同一个包内。在其它地方,这个常量可以用绝对路径访问到。
*/ // 7.6 包可见性
/**
* package com.ooccpp.www.people
* class Person{
* private[people] def description = "A person with name" + name
* }
* 可以将可见度延展到上层包
* private[www] def description = "A person with name" + name
*/ // 7.7 引入
// 引入语句可以使用短名称而不是绝对路径
import java.awt.Color
// 引入某个包的全部成员
import java.awt._
// 引入类或对象的所有成员
import java.awt.Color._

chapter07的更多相关文章

  1. Chapter07 链表(下):如何轻松学出正确的链表代码?

    技巧一:理解指针或引用的含义 技巧二:指针丢失和内存泄漏 技巧三:利用哨兵简化实现难度 技巧四:重点留意边界条件处理 如果链表未空时,代码是否能够正常运行 如果链表只包含一个节点时,代码能否正常运行 ...

  2. django表单

    一.主要内容 1.服务端获取HttpRequest信息        1)url相关信息        2)HttpRequest.META中包含的键值对        3)HttpRequest中用 ...

  3. web初学之JavaBean

    JavaBean 1.javaBean类:特殊的java类,以封装和重用为目的.通常JavaBean与Jsp搭配使用构成JavaBean技术. (1)JavaBean的规范: ●JavaBean是个公 ...

  4. markdown to html

    /************************************************************************* * markdown to html * 说明: ...

  5. 【Python】django表单与提交

    参考:http://djangobook.py3k.cn/2.0/chapter07/ 本文的内容应属于django的表单模块,没有涉及到的后端request对象的处理方法可以单独深入学习表单. UR ...

  6. LFS7.4编译笔记(3)

    在第一部分,我们编译了一个工具链及临时系统,然后在第二部分我们chroot到/mnt/lfs下面,利用临时系统的工具编译了我们最终的LFS系统.不过此时,我们的LFS系统还是不完整的,因为我们还没有安 ...

  7. Python+Django+SAE系列教程11-----request/pose/get/表单

    表单request,post,get 首先我们来看看Request对象,在这个对象中包括了一些实用的信息,学过B/S开发的人来说这并不陌生,我们来看看在Django中是怎样实现的: 属性/方法 说明 ...

  8. Hibernate Validator 6.0.9.Final - JSR 380 Reference Implementation: Reference Guide

    Preface Validating data is a common task that occurs throughout all application layers, from the pre ...

  9. ASP.NET Core 入门教程 7、ASP.NET Core MVC 分部视图入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)分部视图简介 ASP.NET Core MVC (Razor)分部视图基础教程 ASP.NET Core MVC (Raz ...

随机推荐

  1. 配置 VS Code 调试 PHP

    配置 VS Code 调试 PHP 1.下载 xampp 集成服务器wampserver3.1.0-Apache2.4.7_PHP5.6.3-7.0.23-7.1.19_MySQL5.7.19_Mar ...

  2. chrome中的content script脚本文件

    打开chrome的devtools工具,sources下有一个Content script: 1 chrome插件开发过程中难免会遇到使用content script来操作页面的dom,在chrome ...

  3. 浅谈Huffman树

    所谓Huffman树,就是叶子结点带权的\(K\)叉树,假设每个叶子的权值为\(v\),到根的距离为\(dep\),那么最小化\(\sum v_i*dep_i\)就是\(Huffman\)树的拿手好戏 ...

  4. poj 2390 Bank Interest(计算本利和)

    一.Description Farmer John made a profit last year! He would like to invest it well but wonders how m ...

  5. 修改initrd.img里ko文件的一个小tips

    在经历以下步骤解开initrd.img文件之后: 若file initrd.img 指示initrd.img为gzip文件,则2: mv initrd.img initrd.gz gunzip -d ...

  6. Go语言命令行操作命令详细介绍

    转自:http://www.jb51.net/article/56781.htm Go 命令 Go语言自带有一套完整的命令操作工具,你可以通过在命令行中执行go来查看它们: 图 Go命令显示详细的信息 ...

  7. RS-485收发的零延时转换电路

    转自:http://www.dzsc.com/data/html/2007-5-28/41097.html RS-485是一种基于差分信号传送的串行通信链路层协议.它解决了RS-232协议传输距离太近 ...

  8. 用paramiko写堡垒机

    paramiko paramiko模块,基于SSH用于连接远程服务器并执行相关操作. 基本用法 SSHClient 基于用户名密码连接: 基础用法: import paramiko # 创建SSH对象 ...

  9. HttpApplication 对象的创建过程及HttpModule过滤器的内部实现过程

    最近通过Reflector学习了一下asp.net内部的原理,做做笔记,方便以后查阅. 先看下HttpApplication 对象的创建过程 从IHttpHandler applicationInst ...

  10. linux日常管理-curl工具

    curl 在linux命令行中用于访问网站,下载东西, 可以用 curl www.qq.com 访问 出现很多源代码 ///////////////////////////////////////// ...