Scala_修饰符

目录

修饰符private、protected、public

私有成员:

保护成员:

公共成员:

作用域保护

Java的访问权限表


修饰符private、protected、public

Scala访问修饰符和Java基本一样,分别有private、protected、public。默认缺省情况下,Scala对象的访问级别是public。

私有成员:

用private关键字修饰的成员仅在包含了成员定义的类内部或对象内部可见。Java中允许这两种访问,它允许外部类访问内部类的私有成员。

class test{}class Outer{
    class Inner{
        private def p(){
            println( "p")
        }
        class InnerMost{
            p() //正确
        }
    }
    //(new Inner).f("Outer") //错误,外层类不能访问被嵌套类的私有成员,Java中支持
}

保护成员:

Scala比Java中更严格。只允许保护成员在定义了该成员的类的子类中被访问。Java中除定义了该保护成员的类的子类中可被访问,同一个包下的其他类也可以进行访问。

package p{
    class Supper{
        protected def p(){
            println("p")
        }        
    }
    
    class Sub extends Supper{
        p() //正确
    }
    
    class other{
        // (new Supper).p() //错误,只有子类可以。java支持,protected成员在同包下类中也可访问
    }
}

公共成员

默认public,这样的成员在任何地方都可以被访问。

class test{}class Outer{
    class Inner{
        def p(){
            println( "p")
        }
        class InnerMost{
            p() //正确
        }
    }
    //(new Inner).f("Outer") //正确 
}

作用域保护

Scala中访问修饰符可以通过使用限定词强调。格式private[x] 或 protected[x]

X指某个所属的包、类、单例对象。private[x],读作“这个成员除了对[…]中的类或[…]中的包中的类及它们的伴生对象可见外,对其他所有类都是private

 

Private[this] val x,只能被this访问,即只能被当前对象访问

Private val x,可以被另一个对象访问

Java的访问权限表

不写(default)默认:包内可访问

Private私有:类内可访问

Protected保护:包内和子类可访问

Public公有:都可访问

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值