scala访问修饰符

Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。

1.private(私有)成员

用private关键字修饰,带有此标记的成员仅在包含了成员定义的类或对象内部可见,同样的规则还适用内部类。

例;class Outer{
    class Inner{
    private def f(){println("f")}
    class InnerMost{
        f() // 正确,,因为这个访问包含在 Inner 类之内。
        }
    }
    (new Inner).f() //错误,(new Inner).f( ) 访问不合法是因为 f 在 Inner 中被声明为 private,而访问不在类Inner之内。
}

Java中允许这两种访问,因为它允许外部类访问内部类的私有成员。

2.protected(保护)成员

在 scala 中,它只允许保护成员在定义了该成员的的类的子类中被访问。而在java中,用protected关键字修饰的成员,除了定义了该成员的类的子类可以访问,同一个包里的其他类也可以进行访问。

package p{
class Super{
    protected def f() {println("f")}
    }
class Sub extends Super{
   f() //正确,因为 f 在 Super 中被声明为 protected,而 Sub 是 Super 的子类。
}
class Other{
(new Super).f() //错误,因为 other 没有继承自 Super。
}
}

而后者在 java 里同样被认可,因为 Other 与 Sub 在同一包

3.public(公共)成员

Scala中,如果没有指定任何的修饰符,则默认为 public。这样的成员在任何地方都可以被访问。

class Outer {
   class Inner {
      def f() { println("f") }
      class InnerMost {
         f() // 正确
      }
   }
   (new Inner).f() // 正确因为 f() 是 public
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值