scala 导入 java.util_scala入门 包和引入

支持嵌套,下层可以访问上层作用域中的名称

可串联

顶部标记

包对象

包可见性

包在任何地方都可以引入,作用域至该语句所在块的末尾

重命名引入成员(xx => yy)

隐藏方法(xx =>_)

自动引入(java.lang._   scala._   Predef._)

支持嵌套,下层可以访问上层作用域中的名称

包可以嵌套,一个包可以定义在多个文件当中,也不需要将源文件和包之间对应起来;

packagecom.benlai{classFruit{

def sell : Unit={

println("all fruit sell out")

}

}packagelife{classApple {

def currentState : Unit={

val f= new Fruit //不需要引入Fruit的包

f.sell

}

}

}

}

可串联

串联式包名,上级包的成员不可见

package com{

class Fruit{

def sell : Unit= {

println("all fruit sell out")

}

}

}

package com.benlai{

//此处不可见com包成员

class Apple {

def currentState : Unit = {

import com.Fruit

val f = new Fruit //不可见com成员,需要引入Fruit的包

f.sell

}

}

class Banana {

.....

}

}

顶部标记

代码位于同一个包内,在文件顶部标记包;

packagecom.benlaipackagelifeclassApple {

def currentState : Unit={

println("this is an apple")

}

}classBanana {

def currentState : Unit={

println("this is a banana")

}

}

文件的内容在com.benlai.life包中,com.benlai包中的内容对com.benlai.life均可见;但com包中成员对com.benlai.life不可见

包对象

类似于Java中将一个Util类定义在一个静态类中一样,包对象就是将一些常用的方法写在一个package object中,需要的时候,引入这个包;

packagecom.benlai.lifepackageobject DateUtil {

val info= "current date ...."def display():Unit={

println("info is " +info)

}

}

//在 Fruit对象中调用DateUtil的display方法

classFruit {

def currentInfo():Unit={importcom.benlai.life.DateUtil

DateUtil.display()

}

}

包的可见性

scala中类内的成员默认是公有访问权限的,如果想要把scala的成员设定为私有类型的需添加 private[package-name];如 private[this] val name:String = "jack"

package com.benlai

class Person{

val name:String = "jack" //公有访问权限

private[this] val age:Int = 21 //类内成员可访问

private[com] val address:String = "shanghai" //com、com.benlai包下成员可访问

}

包在任何地方都可以引入,作用域至该语句所在块的末尾

{

import package com.benlai.Person //作用域在这个"块"中有效,这个"块"外无效

}

重命名引入成员(xx => yy)和隐藏方法

//重命名引入成员

import java.util.{HashMap=>JHashMap}//引入java.util包下的所有成员除去HashMap外;

improt java.util.{HashMap=>_,_}

自动引入

scala会自动引入java.lang._、scala._、Predef._这些包

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值