D 如何为模块设置私有方法?

D 如何为模块设置私有方法?,d,private-members,D,Private Members,我在一个模块中有两个D类。我希望A类有一个只能从A类和B类访问的属性。我将如何做到这一点 class A { int a = 5; // Make this accessible to, and only to, B. } class B { this(in A pA) { int b = pA.a; } } 只需添加private 访问修饰符是基于模块的,受保护的是唯一的例外 (emph矿) Private表示只有封闭类的成员才能访问成员,或与封闭

我在一个模块中有两个D类。我希望A类有一个只能从A类和B类访问的属性。我将如何做到这一点

class A {
    int a = 5; // Make this accessible to, and only to, B. 
}

class B {
    this(in A pA) {
        int b = pA.a;
    }
}

只需添加
private

访问修饰符是基于模块的,
受保护的
是唯一的例外

(emph矿)

Private表示只有封闭类的成员才能访问成员,或与封闭类位于同一模块中的成员和函数。不能重写私有成员。私有模块成员相当于C程序中的静态声明


只需添加
private

访问修饰符是基于模块的,
受保护的
是唯一的例外

(emph矿)

Private表示只有封闭类的成员才能访问成员,或与封闭类位于同一模块中的成员和函数。不能重写私有成员。私有模块成员相当于C程序中的静态声明


private
是模块专用的,而不是类专用的。因此,将一个符号标记为
private
可以使它只有该模块中的东西才能访问它

package
使得只有同一个包中的东西才能访问符号

protected
使得只有该类和从该类派生的类中的内容才能访问符号(与其他内容不同,
protected
在类之外没有意义)

public
使得任何东西都可以访问该符号

private
package
函数从来都不是虚拟的,而
protected
public
函数总是虚拟的,除非编译器能够确定它们不需要虚拟(在这一点上,只有当函数是
final
且不重写基类中的函数时,才会发生这种情况)


因此,只要您的两个类位于同一个模块中,并且它们的成员是私有的,它们就可以访问彼此的成员,就像模块中的任何其他对象一样,但是模块外的任何对象都不能访问它们。除了当符号是函数的本地符号时,没有办法限制模块内的访问,因此如果您想使其成为私有的如果一个类不能访问另一个类的成员,那么您需要将它们放在单独的模块中。

private
是模块的私有,而不是类的私有。因此,将符号标记为
private
会使该模块中的内容只能访问它

package
使得只有同一个包中的东西才能访问符号

protected
使得只有该类和从该类派生的类中的内容才能访问符号(与其他内容不同,
protected
在类之外没有意义)

public
使得任何东西都可以访问该符号

private
package
函数从来都不是虚拟的,而
protected
public
函数总是虚拟的,除非编译器能够确定它们不需要虚拟(在这一点上,只有当函数是
final
且不重写基类中的函数时,才会发生这种情况)

因此,只要您的两个类位于同一个模块中,并且它们的成员是私有的,它们就可以访问彼此的成员,就像模块中的任何其他对象一样,但是模块外的任何对象都不能访问它们。除了当符号是函数的本地符号时,没有办法限制模块内的访问,因此如果您想使其成为私有的如果一个类不能访问另一个类的成员,那么您需要将它们放在单独的模块中