自学内容网 自学内容网

Scala学习记录,访问权限,,控制方法作用域,package包,

访问权限:

类的成员(属性,方法……)是否能耐被访问?!就是访问权限

默认访问权限:如果一个变量没有任何修饰符就代表默认访问权限。protected只能用于继承关系中,即只能被子类访问。private只能在类内部使用。private[this]只能被类中的某一个对象访问。

在伴生对象中可以访问具有protected权限的属性,因为伴生类和伴生对象之间的成员可以相互访问。一个外部类要访问protected权限的成员,必须继承这个成员所在的类。

属性的访问修饰符:

(1)无修饰符-不做任何限制

(2)private

(3)protected

(4)private[this]

eg:银行账户存取钱,转账

控制方法作用域:

(1)默认访问权限

(2)protected访问权限

(3)private访问权限

(4)private[package]访问权限

(5)private[this]访问权限

package包,一个容器。可以把类,对象,包,装入

Scala可以在任何位置使用import语句

package好处:
  1.区分同名的类

  2.类很多时,更好地管理类

  3.控制访问范围
定义格式:
  1.package 包名 

   2.package 包名 { } 

   3.package 包名 {package 包名}

public 和 protected修饰的成员可以访问外部包的成员,对于私有的对象级别的成员不可以访问。private[包名]表示只能在指定的包中访问成员,不论成员是否存在继承关系。

包命名规则:

  包名称应全部小写,只能包含数字,字母,下划线,小圆点。不能使用数字开头,也不能用关键字。

包的访问权限
访问权限作用域

无修饰符

任何包
private[A]本类,A包,A的子包
private[this]本类中的同一个对象
private本类,伴生类
protected[A]本类,子类,A包,A的子包
protected[this]本类中的同一个对象,子类
protected本类,伴生类,子类

两种包的管理风格:

1.一个源文件一个包,与路径名一一对应

2.嵌套package表示层级关系。这样的好处是一个文件可以定义多个包,内层包可以访问外层的包的类和对象

包对象中,可以放一个公共的属性和方法,以供同级的类来使用

在Scala中显式导入包使用import关键字。如果想要导入 m 包下所有类,使用import m._;如果只需要导入 m 包中的A类,使用import m.A;如果想要导入A和B两个类,使用import m.{ A,B }。

小习一下:

1.private 修饰的属性,可以在子类中访问吗        

        不可以

2.protected修饰的属性,可以在子类中访问吗

        可以

3.private[this] 修饰的属性,能在哪里被访问

   private[this]修饰的属性只能在定义该属性的类的同一对象实例内部的方法中访问

         private[this] 作用:限制属性只能被当前对象访问

4.private[package] 修饰的属性,能在哪里被访问

   private[package]修饰的属性可以在其修饰的包及其子包内被访问。

5.包的关键字

        package

6.包的命名规则

        包名称应全部小写,只能包含数字,字母,下划线,小圆点。不能使用数字开头,也不能用关键字。

7.如何导入某个包下所有的类

        ._

        import scala.util._

8.如何导入某个包下的某个类

        .类名


原文地址:https://blog.csdn.net/2402_87076376/article/details/143280050

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!