gpt4 book ai didi

scala - 类/对象/特征级别的访问修饰符是什么意思?

转载 作者:行者123 更新时间:2023-12-01 10:35:45 25 4
gpt4 key购买 nike

在 scala 中,我可以向类/特征/对象添加访问修饰符,例如

private class Foo
protected[this] trait Foo

我还没有找到关于这些类/特质/对象级修饰符的任何好的解释。所有这些组合都有意义吗?它们究竟意味着什么?

最佳答案

它们的含义与类/特征成员的访问修饰符相同,因为类和特征也可以是其他类的成员。例如:

class A {
private class Foo
}

Foo 类仅对 A 类可见。如果我将修饰符更改为 private[this],则它被称为 object private,因此任何 Foo 都是 only 对其 A 的父实例可见。

声明 privateprivate[this]protectedprotected[this] 只有在内部才有意义另一个类或特征,因为它必须对某物 私有(private)。在这种情况下,FooA 是私有(private)的。这同样适用于特征。

我们也可以有一个包含对象,并使它们包私有(private)

package com.example.foo

private[foo] class Foo

现在 Foo 类仅对 com.example.foo 包的其他成员可见。

它们有意义吗?在某些情况下,我确信在其他对象中拥有私有(private)类和特征是有用的。

关于scala - 类/对象/特征级别的访问修饰符是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29855410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com