class EG {
private[this] type TypeMember = A
private[this] var field: Int = 0
}
フィールドのようにタイプメンバにアクセス修飾子を指定することは可能です。 OOPの場合、フィールドのencapsulationは、意図しない状態の共有を防止し、状態の変更を制限する利点を提供することがよく理解されている。私が知る限り、型メンバーはScalaでしか見つからず、多くの場所ではpublicとして定義されているため、型メンバーのアクセス修飾子の使用はフィールドの場合と同様によく理解されていません。型メンバーは、変数やフィールドのような状態を保持しません。値を保持していないので、変更することはできません。 私の質問は、型メンバーへのアクセスを制限する必要がある場所(型メンバーをプライベートまたは保護されたものとして定義する)です。定義を設けることなく、プライベート型のメンバ宣言を作るタイプメンバにはいつアクセス修飾子を使用する必要がありますか?
上記は単に例示目的のためです。これは、private [this] type TypeMember = A'または 'private [this] type TypeMember <:A'または' private型TypeMember = A'または 'protected [this型] TypeMember = A'または' protected型TypeMember =いくつかの事例を説明するだけです。 –