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._
  • 相关阅读:
    党务
    平台 大赛 公司
    音乐
    有趣的博主
    C++获取命令行参数命令
    360读全景
    3 海康网络相机官方例程(3)OpenCv + ffmpeg + rtmp 实现摄像头采集数据直播功能(不带cuda加速)
    使用opencv4进行分类器训练
    经典环境(2)OpenCV412+OpenCV-Contrib +vs2015+cuda10.1编译
    经典环境(1)OpenCV3.4.9+OpenCV-Contrib +vs2015+cuda10.1编译
  • 原文地址:https://www.cnblogs.com/chenzechao/p/8677267.html
Copyright © 2011-2022 走看看