scala_包_2

scala对于包有很多新的特性:
1.权限范围的改变
2.包访问权限
3.包的引用

1.权限范围的改变

private,proteced,default
没有public

object demo01 {
  def main(args: Array[String]): Unit = {
    val c = new Clerk
    c.showinfo()
    Clerk.test(c)
    //c.age显示不出来
  }

}
//类
//private只可以在伴生对象中使用
//provate只可以子类访问,同包无法访问
class Clerk{
  var name = "lisi"
  private val sal : Double = 99.99
  //没有public
  protected val age = 11
  def showinfo(): Unit ={
    println("name = " + name + " sal = " + sal)
  }
}
//当一个文件中出现class和object的话,class为伴生类,object为伴生对象
//为什么要这样呢,因为设计者把static去掉了,非静态为伴生类calss静态为伴生对象static

object Clerk{
  def test(c:Clerk): Unit ={
    println("test() name=" + c.name + " sal = " + c.sal)
    println(c.age)
  }
}

对于pirvate来说只有在伴生对象和伴生类中可以使用
伴生类:class,伴生对象:object
对于provated来说只可以访问子类,同包的不可以访问,区别于java来说
对于default来说同包都可以访问

2.包访问权限

scala加上了一个新特性用于添加private的权限,表示是private,且可以用于只读,不可以写

object demo02 {
  def main(args: Array[String]): Unit = {
    val p1 = new person
    println(p1.name)
  }

}
//包访问权限扩大了private的权限
class person{
  private[chapter01] val name = "lisi"
}

3.包引用

1.包的引用的后面的下划线_相当与java中的*
2.引入多个包的时候可以用{}括起来
3.重命名包的名称

2

import scala.colleciton.mutable.{HashMap,HashSet}

3

  import java.util.{HashMap=>javaHashMap}
  import scala.collection.mutable._
  val map1 = new javaHashMap()
  val map2 = new HashMap()
object demo03 {

}
class user{
  import scala.beans.BeanProperty
  @BeanProperty var name :String = ""
  //3.
  import java.util.{HashMap=>javaHashMap}
  import scala.collection.mutable._
  val map1 = new javaHashMap()
  val map2 = new HashMap()
}
class Dog{
  @BeanProperty var name :String = ""
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页