16.Scala中包的定义、包对象、包的引用、包的隐式引用代码实战

一、包定义

package scala.oop  //作用域在整个代码块,省略了花括号

//7
package spark.naivgation{  //链式结构
  abstract class Navigator{def act}
  
  package tests{  //测试的代码放在一个包里
    class NavigatorSuite
  }
  
  package impls{  //实现的代码放在一个包里
    class Action extends Navigator{
      def act = println("action")
    }
  }
}

package hadoop{
  package navigation{
    class Navigator
  }
  
  package launch{
    class Booster{
      val nav = new navigation.Navigator   //不用加hadoop前缀,因为都在一个包里
    }
  }
}

二、包对象、包引用

package com.scala.spark

package object people{  //包对象
  val defaultName = "scala"
}

package people{
  class people{
    var name = defaultName  //package里所有的类成员可以直接访问包对象里的成员变量和方法。言外之意:包本身不能定义成员变量和方法
  }
}

三、隐式引入的包

import java.lang._  //java.lang包的所以东西
import scala._  //scala包的所以东西
import Predef._  //Predef对象的所以东西

后面引入的类会覆盖掉前面引入的类。eg:scala.StringBuilder会覆盖掉java.lang.StringBuilder


重命名和隐藏方法

import java.awt.{Color, Font} //只引入这两个类
import java.util.{HashMap => JavaHashMap}  //起个别名。scala和Java中类名有冲突,因为在scala中可以使用Java的所以内容
import scala.{StringBuilder => _}  //隐藏这个类,不要引入这个类


参考资料来源于 DT大数据梦工厂Scala零基础实战经典第16课 由王家林老师讲解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值