QuicklyStudyScala_7


 

class QuicklyStudyScala_7 {
  def main(args: Array[String]) {

  }
}
//包的目的,管理大型程序中的名称
//增加条目,
package com {
  package horstmann {
    package impatient {
      class Employee {}
    }
  }
}

//在任意一个位置以 com.horstmann.impatient.Employee 访问到
//同一个包可以定义在多个文件当中
package com {
  package horstmann {
    package impatient {
      class Manager {}
    }
  }
}

//也可以在同一个文件当中为多个包贡献内容

//作用域规则
//在scala中,包的作用域比起Java来,更加前后一致, Scala的包和其他作用域一样地支持嵌套, 可以访问上层作用域中的名称
package com {
  package horstmann{
    object Utils{
      def percentOf(value:Double, rate: Double) = value * rate / 100
    }
    
    package impatient{
      class Emmployee {
        def giveRaise(rate:scala.Double){
          var salary:Double = 0
          salary += Utils.percentOf(salary, rate);
        }
      }
    }
  }
}
//scala中, 包名是相对的,就像内部类的名称一样,
//对于包名重复问题的解决办法之一是: 使用绝对包名, 以 _root_ 开始
// var subordinates = new _root_.scala.collection.mutable.ArrayBuffer[Employee]
// 另一种作法是使用 "串联式"
//串联式包语句     包含一个"串", 或者说是路径区段
package com.horstmann.impatient {
  //com和com.horstmann的成员在这里不可见
  package people {
    class Person {}
  }
}

//文件顶部标记法     在文件顶部使用package语法,不带花括号
//package com.horstmann.impatient
//package people
//class Person{}
//包对象
//包可以包含类、对象和特质,但不能包含函数或变量的定义, 把工具函数或常量添加到包而不是某个Utils对象,这是更加合理的做法
//包对象的出现正是为了解决这个局限
//每个包都可以有一个包对象,在父包中定义它,且名称与子包一样
//package com.horstmann.impatient
//package object people {
//  val defaultName = "John Q.Public"
//}
//package people {
//  class Person {
//    var name = defaultName //从包对象拿到的常量
//  }
//}
//包对象被编译成带有静态方法和字段的JVM类, 位于相应的包下
//包可见性
//package com.horstmann.impatient.people
//class Person {
//  private[people] def description = "A person with name " + name
//}
 
//private[impatient] def description = "A person with name " + name

//引入           引入语句让你可以使用更短的名称而不是较长的名称
import java.awt.Color
//引入某个包的全部成员
import java.awt.Color._
//任何地方都可以声明引入             _通配符
//重命名和隐藏方法
//只想引入包中的几个成员,可以这样使用选取器 (selector)
import java.awt.{Color, Font}
//选取器语法还允许你重命名选到的成员
import java.util.{HashMap => JavaHashMap}
import scala.collection.mutable._
//选取器 HashMap => _ 将隐藏某个成员而不是重命名它, 需要引入其他成员时有用
import java.util.{HashMap => _, _}
import scala.collection.mutable._
//隐式引入 scala 隐式地如下代码开始
import java.lang._
import scala._
import Predef._
//引入被允许可以覆盖之前的引入



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值