この記事は次から転送されます:https : //www.cnblogs.com/yubinfeng/p/4552274.html
カテゴリーは、その名前が示すように、分類とカテゴリーを意味します。オブジェクト指向プログラミングが必要な場合は、さまざまなものを分類する必要があります。クラスは.netオブジェクト指向の中核と言えます。
クラス:同じプロパティと機能を持つオブジェクトの抽象的なコレクションです。
1.クラス定義
<アクセス修飾子>クラス<クラス名> {クラスメンバー(フィールド、属性、メソッド、イベント)}
たとえば、「human」は、性別、人種、国などの属性を含むことができるクラスです。属性を含めることに加えて、クラスメソッドとして理解できる、食べる、寝るなど、他のいくつかの関数も含まれています。
コードは次のとおりです。
1クラスPerson 2 { 3公開文字列gender {get; set;} 4公開文字列race {get; set;} 5公開文字列Country {get; set;} 6公開文字列Eat(string strCountry) 7 { 8スイッチ(strCountry) 9 { 10ケース "米国": 11 12は "Love to eat Western food"を返します; 13 14ケース "韓国": 15 16は "Love to eat kimchi"; 17デフォルト: 18は "Do n't know"を返します; 19} 20} 21}
クラス修飾子については、前のセクションで説明した5つのアクセス修飾子がサポートされています
アクセス修飾子 |
解説 |
公衆 |
パブリックアクセス。制限なし。 |
民間 |
プライベートアクセス。アクセスはこのクラスのメンバーに制限されており、サブクラスとインスタンスにはアクセスできません。 |
保護された |
アクセスを保護します。アクセスはこのクラスとサブクラスに制限されており、インスタンスにはアクセスできません。 |
内部 |
内部アクセス。アクセスはこのプロジェクトに限定され、他のプロジェクトにはアクセスできません。 |
保護された内部 |
内部で保護されたアクセス。アクセスはこのプロジェクトまたはサブカテゴリに制限されており、他の人はアクセスできません |
- クラス名前空間のデフォルト修飾子は次のとおりです:public
- クラスのデフォルトのアクセス修飾子は次のとおりです。
- クラスのメンバーのデフォルトのアクセス修飾子は次のとおりです。
- クラスメンバーのスコープは、それを含むクラスを超えることはできません
- 静的クラスstatic class ClassNameを宣言できますが、そのすべてのメンバーは明示的にstaticとして定義する必要があります
2.クラスのインスタンス化
クラスのインスタンス:クラスの実際のオブジェクト
<クラス名> <インスタンス名> =新しい<クラス名>([コンストラクタのパラメータ])
たとえば、上記で定義された人間はクラスであり、特定の個人は人間のインスタンスであり、クラスからクラスインスタンスへのプロセスはクラスのインスタンス化と呼ばれます。
Person person = new Person();
3.コンストラクタ
コンストラクターはコンストラクターとも呼ばれ、クラスを初期化するメソッドです。
その名前は同じ名前で、戻り値はなく、新しいときに呼び出されるvoidの必要もありません。
すべてのクラスにはコンストラクタがありますが、C#はデフォルトでパラメータなしのコンストラクタになります。定義されていない場合は、デフォルトが使用されます。
コンストラクタが定義されている場合、デフォルトでは無効です。
4.ネストされたクラス
C#はクラスのネストを許可します
ネストされたタイプは外部タイプのメンバーと見なされるため、ネストされたタイプは外部タイプの他のすべてのメンバーにアクセスできます。
クラスメンバーのデフォルトのアクセス修飾子はプライベートであるという原則によると、ネストされたクラスのデフォルトのアクセス修飾子はプライベートです。
ネストされたタイプは、それらのメンバーがプライベートであるかどうかに関係なく、外部タイプのメンバーに自由にアクセスできます。外側の型がネストされた型にアクセスする必要がある場合、それはアクセス規則に従います。
入れ子になったクラスの継承(継承については後で詳しく説明します)に関して、型が入れ子になった型を含む型を継承する場合、入れ子になった型自体がベースであるため、基本型の入れ子になった型を自然に継承しますタイプのメンバー。したがって、ネストされたタイプがプライベートでないか継承できない限り、サブタイプで新しく宣言されたネストされたタイプもそのネストされたタイプを継承できます。
ネストされたクラスコードは次のとおりです。
1静的クラスTree 2 { 3プライベート静的文字列_treeLeafColor = "Green"; 4静的クラスAppleTree 5 { 6プライベート静的文字列appleTreeLeaf = _treeLeafColor; 7} 8}
5.分散クラス
一部のクラスには複雑な関数があり、多数のフィールド、属性、イベント、メソッド、さらにはネストされたメンバーさえ含まれています。すべてのクラス定義が一緒に記述されている場合、ファイルは巨大になり、コード行は大きくなり、理解とデバッグが容易ではありません。
分散クラスの特性:
A、同じクラス名、
B、部分修飾子、
C、同じ名前空間、
//ファイル名は、system を使用したpartOne.csです。public 部分クラスの例 { public void method1(){} }
//ファイル名は、system を使用したpartTwo.csです。public 部分クラスの例 { public void method2(){} }
どちらのメソッドもクラスの例に属していますが、別のファイルに配置されています。エディタがパーシャルを見つけた後、クラス名と名前空間は同じになり、ファイルは自動的にコンパイルされて完全なクラスを形成します。
重要なポイント:
1.修飾子staticを使用して、クラスを静的クラスとして宣言できますstaticを宣言した後、クラスのすべてのメンバーは静的でなければなりません。
2.クラスのデフォルトのアクセス修飾子は内部です。プライベートクラスを定義する場合は、修飾子プライベートを追加する必要があり、クラスのメンバーのデフォルトのアクセス修飾子は次のとおりです:プライベート、パブリックメソッドは次のように宣言する必要があります:パブリック
3.クラスの命名規則:最初の大文字の規則を使用します。システムクラス名または修飾子と同じ名前は使用しないでください。