Scala_修饰符
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公有:都可访问
Scala_修饰符的更多相关文章
- JAVA语言中的修饰符
JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...
- Java类访问权限修饰符
一.概要 通过了解Java4种修饰符访问权限,能够进一步完善程序类,合理规划权限的范围,这样才能减少漏洞.提高安全性.具备表达力便于使用. 二.权限表 修饰符 同一个类 同一个包 不同包的子类 不同包 ...
- iOS 方法修饰符
一.NS_DESIGNATED_INITIALIZER 用来修饰init方法,被修饰的方法称为designated initializer:没有被这个修饰的init方法称为convenience i ...
- C#基础回顾(一)—C#访问修饰符
一.写在前面的话 好久没有停下来总结自己,转眼间15年过去好些天,回首过去的日子,亦或失去,亦或所得!生活的节奏,常常让我们带着急急忙忙的节奏去追赶,也许这并不是每个人所期望的生活方式!于他人,于自己 ...
- 关于Java语言中那些修饰符
一.在java中提供的一些修饰符,这些修饰符可以修饰类.变量和方法,在java中常见的修饰符有:abstract(抽象的).static(静态的).public(公共的).protected(受保护的 ...
- C#基础知识八之访问修饰符
1. 类的访问修饰符 修饰符 访问权限 无或者internal 只能在同一个程序集中访问类 public 同一个程序集或引用该程序集的外部都可访问类 abstract或internal abstra ...
- java访问修饰符
了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变 ...
- java静态修饰符static的使用
class Person { private String name; private int age; /* * 假设每个Person对象的国籍都一样, * 那么每次调用都要赋值就会不合理. * 使 ...
- Scala访问修饰符(四)
Scala 访问修饰符基本和Java的一样,分别有:private,protected,public. 如果没有指定访问修饰符符,默认情况下,Scala对象的访问级别都是 public. Scala ...
随机推荐
- Eigen学习
Eigen 是一个基于C++的线性代数库,其中实现大量常用的线性代数算法,包括常规矩阵计算,矩阵变换,矩阵分解,矩阵块操作.Eigen 广泛地应用在开源项目中,例如OpenCV,PCL(Point C ...
- [WINDOWS MOBILE | SOLUTION] 通过有线连接到 PC 后,WM设备能 PING 通网关但是不能上网
在 Windows Mobile Device Center 处点击 Mobile Device Settings, Connection Settings, 选择 This computer con ...
- Java中的消息框
JOptionPane.showMessageDialog(newFrame.getContentPane(),"弹出的是消息提示框!", "系统信息", JO ...
- Oracle 18c新特性一览
1. 一般新特性 1.1. Shadow Lost Write Protection Shadow lost write protection检测到一个丢失的写,它会导致一个主要的数据损坏.可以在不需 ...
- Spring Security自定义GrantedAuthority前缀
如果我们正使用Spring Security提供默认的基于方法的权限认证注解如下: @PreAuthorize("hasAnyRole('ADMIN', 'USER')") pub ...
- eclipse tomcat部署工程路径
C:\Users\KPL\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\day18_ ...
- css3实现border渐变色
案例1 .box{ width: 100px; height: 100px; border:10px solid #ddd; border-image: -webkit-linear-gradient ...
- 【Excel】单元格的下拉框是怎么做的?
如果我们希望将产品这一列的每个单元格都能选择 左侧的产品就好了,就像这样 这里使用的是"验证数据有效性"功能 在这里: 点击F,选择F列后,打开“数据验证”,如图,选择序列,选择来 ...
- list(range())--------range创建一个list列表 遍历索引range(len()) 和 list(range())创建列表
lst = list(range(15,26)) #注,list(range())用的是小括号哦print(lst)
- 【Alpha】事后诸葛亮
一. 项目的预期计划 / 项目的现实进展 详见Alpha冲刺博客第一篇 二. 完成项目过程中的体会 详见Alpha冲刺博客第十二篇 三. 团队成员的分工及在Alpha阶段的工作量比例 成员 职务 博客 ...