8.Scala包和import

一.包

//包,平常我们还是想Java那样去使用包
package scala{
  class Cat{
    def eat()={println("cat eat ...")}
  }
}

二.访问控制

  • 无任何修饰符:任何地方都可以使用

  • private[scala]:在定义的类中可以访问,在scala包及子包中可以访问

  • private[this]:只能在定义的类中访问,即使伴生对象也不能访问团

  • private:在定义的的类及伴生对象中可以访问,其它地方不能访问

  • protected[scala]:在定义的类及子类中可以访问,在scala包及子包中可以访问

  • protected[this]:只能在定义的类及子类中访问,即使伴生对象也不能访问

  • protected:在定义的类及子类中访问,伴生对象可以访问,其它地方不能访问

三.包对象

//包对象
//利用package关键字定义单例对象
package object Math{
  val PI = 3.1415
  val THETA = 2.0
  val SIGMA = 1.9
}
class Compute{
  def computeArea(r:Double) = Math.PI * r * r
}

四.import

//隐藏引入
import scala._
import Predef._

//重命名
import java.util.{HashMap => JavaMap}
import scala.collection.mutable.HashMap

//类隐藏
//通过HashMap => _,隐藏起来
import java.util.{HashMap=>_,_}
import scala.collection.mutable.HashMap

五.内部类

class OuterClass{
  //即使定义为 private[this] var x:Int = 0,也可行
  private var x:Int = 0
  
  //def getInnerY = y  //外部类不能访问内部类的成员
  class InnerClass{
    private var y:Int = 0
    //内部类可以直接访问外部类的成员变量和成员方法
    def getOuterX = x
  }
}

转自:https://blog.csdn.net/column/details/scalalearning.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值