Scala 面向对象-Scala 包

本文详细介绍了Scala的面向对象特性,包括包的管理、包对象的定义与使用、以及导入导出机制。Scala的包管理风格与Java有所不同,提供了一种嵌套的方式来组织类,并允许在包中定义包对象以共享成员。此外,还讨论了如何有效地导入包和类,包括局部导入、通配符导入、重命名导入等。理解这些概念对于Scala开发者至关重要。
摘要由CSDN通过智能技术生成

Scala 面向对象

Scala 的面向对象思想和 Java 的面向对象思想和概念是一致的。
Scala 中语法和 Java 不同,补充了更多的功能。

1 Scala 包

1)基本语法
package 包名
2)Scala 包的三大作用(和 Java 一样)
(1)区分相同名字的类
(2)当类很多时,可以很好的管理类
(3)控制访问范围

1.1 包的命名

1)命名规则
只能包含数字、字母、下划线、小圆点.,但不能用数字开头,也不要使用关键字。
2)案例实操
demo.class.exec1 //错误,因为 class 关键字
demo.12a //错误,数字开头
3)命名规范
一般是小写字母+小圆点
com.公司名.项目名.业务模块名
4)案例实操
com.sohu.bank.order

1.2 包说明(包语句)

1)说明
Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如com.xiaoqiu.scala。
另一种风格,通过嵌套的风格表示层级关系,如下

package com{
	package xiaoqiu{
		package scala{
		}
	}
}

第二种风格有以下特点:
(1)一个源文件中可以声明多个 package
(2)子包中的类可以直接访问父包中的内容,而无需导包

1.3 包对象

在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 object 的共享变量,可以被直接访问。
1)定义

package object com{
	val shareValue="share"
	def shareMethod()={}
}

1)说明
(1)若使用 Java 的包管理风格,则包对象一般定义在其对应包下的 package.scala文件中,包对象名与包名保持一致。
(2)如采用嵌套方式管理包,则包对象可与包定义在同一文件中,但是要保证包对象与包声明在同一作用域中。

package com {
	 object Outer {
	 	 val out: String = "out"
		 def main(args: Array[String]): Unit = {
		 	println(name)
		 }
	 }
}
package object com {
	val name: String = "com"
}
1.4 导包说明

1)和 Java 一样,可以在顶部使用 import 导入,在这个文件中的所有类都可以使用。
2)局部导入:什么时候使用,什么时候导入。在其作用范围内都可以使用
3)通配符导入:import java.util._
4)给类起名:import java.util.{ArrayList=>JL}
5)导入相同包的多个类:import java.util.{HashSet, ArrayList}
6)屏蔽类:import java.util.{ArrayList =>_,_}
7)导入包的绝对路径:new _root_.java.util.HashMap

package java {
	 package util {
		 class HashMap {
		 }
	 }
}

说明
import com.xiaoqiu.Fruit 引入 com.xiaoqiu 包下 Fruit(class 和 object)
import com.xiaoqiu._ 引入 com.xiaoqiu 下的所有成员
import com.xiaoqiu.Fruit._ 引入 Fruit(object)的所有成员
import com.xiaoqiu.{Fruit,Vegetable} 引入 com.xiaoqiu 下的 Fruit 和 Vegetable
import com.xiaoqiu.{Fruit=>Shuiguo} 引入 com.xiaoqiu 包下的 Fruit 并更名为 Shuiguo
import com.xiaoqiu.{Fruit=>Shuiguo,_} 引入 com.xiaoqiu 包下的所有成员,并将 Fruit 更名为 Shuiguo
import com.xiaoqiu.{Fruit=>_,_} 引入 com.xiaoqiu 包下屏蔽 Fruit 类
new root.java.util.HashMap 引入的 Java 的绝对路径
2)注意
Scala 中的三个默认导入分别是
import java.lang._
import scala._
import scala.Predef._

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值