Scala--包

Scala--包

  • 包的命名
    • 1)命名规则
    • 2)命名规范
  • 包说明(包语句)
  • 导包
  • 访问权限
  • 包对象

包的命名

1)命名规则

只能包含数字、字母、下划线、小圆点.,但不能用数字开头,也不要使用关键字。

2)命名规范

一般是小写字母+小圆点
com.公司名.项目名.业务模块名

包说明(包语句)

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

`com.atguigu.scala`

另一种风格,通过嵌套的风格表示层级关系,如下
这种风格有以下特点:
(1)一个源文件中可以声明多个package
(2)子包中的类可以直接访问父包中的内容,而无需导包

package com{
	package atguigu{
		package scala{

		}
	}
}

导包

Java import

  1. 导类
  2. 静态导入 : import static

Scala语言给import关键字增加了更多的功能

  1. 导类 : import scala.util.control.Breaks
    导包 : import java.util
  2. 可以在任意地方声明import关键字
  3. 在导类的时候可以使用下划线来代替星号,表示所有的类 : import java.util._
  4. Scala在导入相同包中的多个类,可以使用一行进行操作 : import java.util.{ArrayList,List}
  5. 导入不同包的相同名称的类,隐藏类 (将不要的类隐藏掉): import java.sql.{Date=>,}
  6. Scala包中的类也不需要import(类似Java中的java.long)
  7. Scala中的类和Java重名,可以重命名进行区分 : import java.util. {HashMap=>JavaHashMap,_}
  8. import 类时,默认采用相对路径,在特殊情况下,需要使用绝对路径(root.java.util.HashMap())
    –>相对路径(可以改变的路径 : test/test.txt)
    –>绝对路径(不可改变的路径(协议+盘符) : file:///c:/test/test.txt)

Scala中有三个默认导入的包

import java.lang._
import scala._
import scala.Predef._

访问权限

在Java中,访问权限分为:
public,private,protected和默认。
在Scala中,你可以通过类似的修饰符达到同样的效果。但是使用上有区别。
(1)Scala 中属性和方法的默认访问权限为public,但Scala中无public关键字。
(2)private为私有权限,只在类的内部和伴生对象中可用。
(3)protected为受保护权限,Scala中受保护权限比Java中更严格,同类、子类可以访问,同包无法访问。
(4)private[包名]增加包访问权限,包名下的其他类也可以使用

Scala中声明属性可以增加访问权限,如果使用private,那么属性方法也会声明为private的关键字
公共访问权限
  var id: Int = 1
  
私有访问权限
  private var name: String = _
  
包访问权限
  private[chapter6] var age: Int = 20
  
受保护的访问权限
Scala中protected访问权限,同包不能访问,只有同类和子类可以访问
  protected var email : String = _

包对象

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

1)定义

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

2)如采用嵌套方式管理包,则包对象可与包定义在同一文件中,但是要保证包对象与包声明在同一作用域中。

package com {

    object Outer {
        val out: String = "out"

        def main(args: Array[String]): Unit = {
            println(name)
        }
    }
}

package object com {
    val name: String = "com"
}

你可能感兴趣的:(Java,Scala)