scala 开发入门(7)-- 包
2018-03-13 11:06
477 查看
包的定义
//将代码组织到 cn.scala.package 包中 package cn.scala.package abstract class Animal{ //抽象字段 var height:Int //抽象方法 def eat:Unit } class Person (var height:Int) extends Animal{ override def eat() = println("eat by mouth") } object Person extends App{ new Person(170).eat() } //下面的代码定义了一个 cn.scala.package,在该包中定义一个类 Teacher //在程序的任何地方都可以通过 cn.scala.package.Teacher 来使用 Teacher 这个类 package cn{ package scala{ package package{ class Teacher{} } } }
包的使用和作用域
package cn{ package scala{ //在包 cn.scala 下创建一个 Utils 单例 object Utils{ def toString(x:String) = println(x) //外层包无法直接访问内层包,下面这一行代码编译通不过 //def getTeacher():Teacher = new Teacher("John") //如果一定要使用的话,可以引入 import cn.scala.chapter._ def getTeacher():Teacher = new Teacher("John") } //定义包 chapter package chapter{ class Teacher(var name:String){ //演示包的访问规则 //内层包可以访问外层包中定义的类或对象,无需引入 def printName()={Utils.toString(name)} } } } }
包对象
Scala语言是纯面向对象的语言,语言中的一切皆对象,包也是如此。既然是对象,就有它的属性和方法,通过 package 关键字声明的对象被称之为包对象。包对象主要用于对常量和工具函数的封装,使用时直接通过包名引用。//下面的代码给出了包对象的定义package cn.scala.chapter
//利用 package 关键字定义单例对象
package object Math{
val PI = 3.1415926
val THETA = 2.0
val SIGMA = 1.9
}
class Computation{
def computerArea(r:Double) = Math.PI*r*r
}
//隐式引入,引入对象中所有类和方法 import java.lang._ //引入重命名 import java.util.{HashMap => JavaHashMap} //类隐藏,不引入HashMap import java.util.{HashMap => _,_}
相关文章推荐
- Scala 入门——Eclipse开发环境搭建
- scala 开发入门(1)-- 变量及基本数据类型
- scala 开发入门(2)-- 程序控制结构
- scala 开发入门(3)-- 集合
- scala 开发入门(4)-- 函数
- scala 开发入门(4)-- 函数
- scala 开发入门(5)-- 类与对象
- scala 开发入门(6) -- trait
- Scala 入门——Eclipse开发环境搭建
- scala 开发入门(7)-- 包
- scala 开发入门(7)-- 包
- scala 开发入门(8)-- 模式匹配
- scala 开发入门(10)-- 泛型
- Spark 2.0从入门到精通:Scala编程、大数据开发、上百个实战案例、内核源码深度剖析(278讲全)
- scala 开发入门(1)-- 变量及基本数据类型
- scala 开发入门(2)-- 程序控制结构
- scala 开发入门(2)-- 程序控制结构
- scala 开发入门(3)-- 集合
- scala 开发入门(4)-- 函数
- scala 开发入门(4)-- 函数