zoukankan      html  css  js  c++  java
  • chapter07

    // 包和引入
    // 包也可以像内部类那样嵌套
    // 包路径不是绝对路径
    // 包声明链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._
  • 相关阅读:
    看完这篇,网络面试稳了!
    Python 单元测试详解
    聊一聊,Python自动化测试框架
    测试妹纸说,你这用了几年的postman,只用了它的皮毛
    Win系统设置Apache Tomcat开机后台自动启动
    .Net Framework中的委托与事件——热水器事例
    Unity3d学习清单
    python 进制、ASCII码转换
    python正则 re 模块函数
    mysql 简单手工注入
  • 原文地址:https://www.cnblogs.com/chenzechao/p/8677267.html
Copyright © 2011-2022 走看看