シャローコピーの定義を理解している
浅いコピーとは、新しいオブジェクトを作成してから、現在のオブジェクトの非静的フィールドを新しいオブジェクトにコピーすることです。フィールドが値型の場合 --> フィールドのビットごとのコピーが実行されます。参照型の場合 --> 参照はコピーされますが、参照されるオブジェクトはコピーされません。したがって、元のオブジェクトとそのクローンは同じオブジェクトを参照します。
しかし、静的フィールドがコピーされないのはなぜですか?
シャローコピーの定義を理解している
浅いコピーとは、新しいオブジェクトを作成してから、現在のオブジェクトの非静的フィールドを新しいオブジェクトにコピーすることです。フィールドが値型の場合 --> フィールドのビットごとのコピーが実行されます。参照型の場合 --> 参照はコピーされますが、参照されるオブジェクトはコピーされません。したがって、元のオブジェクトとそのクローンは同じオブジェクトを参照します。
しかし、静的フィールドがコピーされないのはなぜですか?
静的フィールドはオブジェクトの一部ではないためです。でアクセスできますClassName.StaticValue
。実際、 ではそれらにアクセスできませんClassInstanceName.StaticValue
。
静的メンバーはclass
インスタンスレベルではなくレベルメンバーであるため、静的メンバーは特定のタイプのすべてのインスタンスに共通であることを意味します。
静的フィールドは、特定のクラスのすべてのインスタンスによって共有されます。