Scala - 修饰符

Scala - 修饰符 首页 / Scala入门教程 / Scala - 修饰符

本章将引导您完成Scala访问修饰符,包,类或对象的成员可以使用访问修饰符标签为私有private和受保护protect,或为公共访问public的。

Private 私有修饰符

私有修饰符表示只有当前类或对象可访问。

class Outer {
   class Inner {
      private def f() { println("f") }
      
      class InnerMost {
         f() //OK
      }
   }
   (new Inner).f() //Error: f 不可访问
}

在Scala中,访问权限(new Inner), f()是非法的,因为f在Inner中被声明为私有,并且访问不是从Inner类内部进行的。

Protected 受保护修饰符

protected 修饰符表示只有当前类或子类可访问。

package p {
   class Super {
      protected def f() { println("f") }
   }
   
   class Sub extends Super {
      f()
   }
   
   class Other {
      (new Super).f() //Error: f 不可访问
   }
}

Sub类中对f的访问是可以的,因为f在" Super"类中声明为受保护,并且" Sub"类是Super的子类。

Public 公共修饰符

privateprotected不同,不需要为Public成员指定Public关键字,public修饰符表示所有类都可以访问。

class Outer {
   class Inner {
      def f() { println("f") }
      
      class InnerMost {
         f() //OK
      }
   }
   (new Inner).f() //OK 因为现在 f() 是公开的
}

保护区域

Scala中的访问修饰符可以通过限定符进行扩充,形式private [X]或protected [X]的修饰符表示访问是private私有的或protected 受保护的,最多X个,其中X指定一些封闭的包,类或单例对象 。

package society {
   package professional {
      class Executive {
         private[professional] var workDetails=null
         private[society] var friends=null
         private[this] var secrets=null

         def help(another : Executive) {
            println(another.workDetails)
            println(another.secrets) //ERROR
         }
      }
   }
}

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

推荐系统三十六式 -〔刑无刀〕

Vue开发实战 -〔唐金州〕

Redis核心技术与实战 -〔蒋德钧〕

人人都用得上的写作课 -〔涵柏〕

Spark性能调优实战 -〔吴磊〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

说透元宇宙 -〔方军〕

大厂设计进阶实战课 -〔小乔〕

零基础学Python(2023版) -〔尹会生〕

好记忆不如烂笔头。留下您的足迹吧 :)