scala的默认导入和以及包声明以及导入

前言

Scala默认会为每个.scala文件导入以下3个包:

  1. java.lang._
  2. scala._
  3. scala.Predef._ (一般很多的隐式转换都在该包下)

包的声明

  1. 支持和java一样的声明方式(基本这种使用)

    package com.zhengkw.scala.day04.pack
    
  2. 支持多个package语句(很少碰到)

    package com.zhengkw.scala.day04.pack
    package a.b
    

    com.zhengkw.scala.day04.pack.a.b.PackDemo

  3. 包语句(很少碰到)

    package c{  // c其实是子包
        class A
    }
    

包导入

  1. 导入和java一样, 在文件最顶层导入, 整个文件的任何位置都可以使用(掌握)

    import java.util.HashMap
    
  2. scala中其实在代码任何位置都可以导入.

    def main(args: Array[String]): Unit = {
        
        import java.io.FileInputStream
        // 只能在main函数中使用
        val is = new FileInputStream("c:/users.json")
    }
    
  3. 导入类的时候, 防止和现有的冲突, 可以给类起别名 (FileInputStream别名为JFI)

    import java.io.{FileInputStream => JFI}
    
  4. 如何批量导入

   import java.io._  // 导入java.io包下所有的类   (java是*)
  1. 屏蔽某个类
import java.io.{FileInputStream => _, _}  //屏蔽 FileInputStream 
  1. java中有静态导入

    java只能导入静态成员.

  import static java.lang.System.out;
  out.println();

scala

scala中没有静态的概念!

   import java.lang.Math._	
  1. scala还支持导入对象的成员
   val u = new User
   // 把对象u的成员导入
   import u._
   foo()
   eat()

5.3 公共方法的处理

java中一般搞工具类, 在工具类中写静态方法. 因为java中所有的方法都需要依附于类或者对象

scala中为了解决这个问题, 提供了一个包对象的, 将来在这个包内, 使用包对内的方法的时候, 就像使用自己定义的.

package com.zhengkw.scala.day04
//包对象
package object pack {
    def foo1() = {
        println("foo...")
    }
    def eat1() = {
        println("eat...")
    }
}

com.zhengkw.scala.day04.pack包下所有的类可以直接使用这些方法.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值