广告
返回顶部
首页 > 资讯 > 精选 >Scala访问修饰符有哪些
  • 803
分享到

Scala访问修饰符有哪些

2023-06-19 12:06:08 803人浏览 薄情痞子
摘要

本篇内容介绍了“Scala访问修饰符有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Scala 访问修饰符基本和Java的一样,分别有:

本篇内容介绍了“Scala访问修饰符有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

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

如果没有指定访问修饰符,默认情况下,Scala 对象的访问级别都是 public。

Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员。


私有(Private)成员

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

class Outer{
   class Inner{
   private def f(){println("f")}
   class InnerMost{
       f() // 正确
       }
   }
   (new Inner).f() //错误
}

(new Inner).f( ) 访问不合法是因为 f 在 Inner 中被声明为 private,而访问不在类 Inner 之内。

但在 InnerMost 里访问 f 就没有问题的,因为这个访问包含在 Inner 类之内。

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


保护(Protected)成员

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

package p{
class Super{
   protected def f() {println("f")}
   }
    class Sub extends Super{
        f()
    }
    class Other{
        (new Super).f() //错误
    }
}

上例中,Sub 类对 f 的访问没有问题,因为 f 在 Super 中被声明为 protected,而 Sub 是 Super 的子类。相反,Other 对 f 的访问不被允许,因为 other 没有继承自 Super。而后者在 java 里同样被认可,因为 Other 与 Sub 在同一包里。


公共(Public)成员

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

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

作用域保护

Scala中,访问修饰符可以通过使用限定词强调。格式为:

private[x] 



protected[x]

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

这种技巧在横跨了若干包的大型项目中非常有用,它允许你定义一些在你项目的若干子包中可见但对于项目外部的客户却始终不可见的东西。

package bobsrocckets{
   package navigation{
       private[bobsrockets] class Navigator{
        protected[navigation] def useStarChart(){}
        class LeGofJourney{
            private[Navigator] val distance = 100
            }
           private[this] var speed = 200
           }
       }
       package launch{
       import navigation._
       object Vehicle{
       private[launch] val guide = new Navigator
       }
   }
}

上述例子中,类Navigator被标记为private[bobsrockets]就是说这个类对包含在bobsrockets包里的所有的类和对象可见。

比如说,从Vehicle对象里对Navigator的访问是被允许的,因为对象Vehicle包含在包launch中,而launch包在bobsrockets中,相反,所有在包bobsrockets之外的代码都不能访问类Navigator。

“Scala访问修饰符有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Scala访问修饰符有哪些

本文链接: https://www.lsjlt.com/news/296157.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Scala访问修饰符有哪些
    本篇内容介绍了“Scala访问修饰符有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Scala 访问修饰符基本和Java的一样,分别有:...
    99+
    2023-06-19
  • java访问修饰符有哪些
    java中的访问修饰符有:1.public,没有指定成员访问的修饰符;2.protec,只允许指定成员的进行访问的修饰符;3.default,不加任何访问限制的修饰符;4.private,只允私有成员进行访问的修饰符;java中的访问修饰符...
    99+
    2022-10-10
  • C#中有哪些访问修饰符
    本篇文章为大家展示了C#中有哪些访问修饰符,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C#访问修饰符C#访问修饰符与 Java 大致相同,我们将在这一部分介绍其中的一些细微差别。每个类成员或类本身...
    99+
    2023-06-17
  • java的非访问修饰符有哪些?
    Java提供了许多非访问修饰符来实现许多其他功能。static修饰符用于创建类方法和变量。 (推荐学习:java课程)final修饰符用于完成类,方法和变量的实现。abstract修饰符用于创建抽象类和方...
    99+
    2018-05-16
    java教程 java
  • java项目中修饰符的访问权限有哪些
    这篇文章给大家介绍java项目中修饰符的访问权限有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带...
    99+
    2023-05-31
    java 修饰符 访问权限
  • 1.1 访问修饰符
    类在定义属性和方法时,可以用关键字private、protected和public来说明属性和方法的访问权限,使对象访问自已的变量和方法受到一定的限制。[@more@]1.1.1 private修饰符关键字private来修饰的属性与方法...
    99+
    2023-06-03
  • php访问权限修饰符有哪几种
    PHP访问权限修饰符有三种:1、public,表示共有的,权限范围最大,在任意位置都可以访问;2、protected,表示受保护的、继承的,只能类本身和类的内部成员可以访问;3、private,表示私有的,只能在类定义的大括号内才可以访问。...
    99+
    2022-06-30
    php
  • Vue修饰符的问题有哪些
    本文小编为大家详细介绍“Vue修饰符的问题有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue修饰符的问题有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.lazy...
    99+
    2022-10-19
  • java修饰符有哪些
    java中的修饰符有:1.abstract,修饰类和方法;2.static,修饰成员变量和成员方法;3.final,修饰类、变量和方法;java中的修饰符有以下几种abstractjava中abstract修饰符的作用是用于修饰类和方法,修...
    99+
    2022-10-05
  • C#修饰符有哪些
    这篇文章主要介绍“C#修饰符有哪些”,在日常操作中,相信很多人在C#修饰符有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#修饰符有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!本文向大家介绍C...
    99+
    2023-06-17
  • Java的修饰符有哪些
    小编给大家分享一下Java的修饰符有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java 修饰符Java语言提供了很多修饰符,主要分为两类:访问修饰符,非访...
    99+
    2023-06-02
  • vue表单修饰符有哪些
    vue中的表单修饰符有:1.lazy,将输入框的值与数据转变在change事件中同步;2.number,将输入框内的字符串转换成数字;3.trim,将输入框内中前后的空格去掉;vue中的表单修饰符有以下几种lazy修饰符vue中lazy修饰...
    99+
    2022-10-22
  • scala中的符号有哪些
    本篇内容介绍了“scala中的符号有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Scala中的符号::::三个冒号运算符:表示list...
    99+
    2023-06-19
  • Java访问权限之 protected 修饰符
    摘要         在Java中,使用访问权限修饰符来保护对类、变量、方法和构造方法的访问,这类修饰符分别是public,protected,default,以及private。由于很多Java书籍对protected可见性的介绍都比较笼...
    99+
    2023-10-25
    java
  • 详解Java中的访问修饰符
    详解Java中的访问修饰符?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、作用及种类UML类图建模语言或标准建模语言类的属性、操作中的可见性使用+、#、-分别...
    99+
    2023-06-15
  • php访问修饰符如何使用
    在PHP中,有三种访问修饰符可用于控制类的属性和方法的访问权限:public(公共)、protected(受保护)和private(...
    99+
    2023-08-30
    php
  • 深度理解Java访问修饰符
    一、作用及种类 UML类图 建模语言或标准建模语言 类的属性、操作中的可见性使用+、#、-分别表示public、protected、private 作用:信息隐藏 防止用户意外修改...
    99+
    2022-11-12
  • Java如何使用访问修饰符
    这篇文章主要介绍Java如何使用访问修饰符,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、简介访问修饰符是Java语法中很基础的一部分,但是能正确的使用Java访问修饰符的程序员只在少数。在Java组件开发中,如果...
    99+
    2023-06-25
  • python Scala函数与访问修辞符实例详解
    目录常规函数可变参数函数使用名字调用函数匿名函数访问修饰符常规函数 object Demo { def main(args: Array[String]) { pr...
    99+
    2022-11-11
  • vue中有哪些事件修饰符
    vue中常见的事件修饰符有:1.stop修饰符,阻止事件向上级DOM元素传递;2.once修饰符,设置事件只能触发一次;3.prevent修饰符,阻止默认事件的发生;4.self修饰符,将事件绑定到自身,只有自身才能触发;vue中常见的事件...
    99+
    2022-10-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作